// 上一篇:分数和checklist
// 下一篇:Alpha/Beta换人


:平常看文章,总有能和构建之法,软件工程相关的链接,增量记录,也可以通过在其他人博客的交流中使用相关的超链接,在使用中review这些超链接背后文章的知识、方法或者观点。链接内容有好有坏,有完备的也有简单的,链接的内容可以深入去阅读,也可以做为一个交叉引用的关键字,引开关注主题的讨论和思考。对链接做归类也是一个必要的方式。每个人都可以建立自己的链接库,所以,也许不在乎是否要全部把链接都点过去看,而在乎的是自己去建立、索引、交叉联想的过程,建构式做知识和方法积累。此外,通过在开放式的博客里持续修订和记录,可以看到修订和迭代的过程。

构建之法:

  • 参考书链接
    书本里虽然列出了这么多参考链接,但是读者是很难一下子全部去看,大部分情况下是一个都没点击过去看。如何有效利用这些参考链接?助教们在点评过程中可以随时按需使用这些链接,通过增量的点评附带相关链接的方式让学生们真正在需求中阅读和理解链接相关内容。
  • http://www.cnblogs.com/lwr-/p/5199030.html?winzoom=1
    • 这个学生利用寒假通读并写了大量笔记。关于知识和方法,我们在大脑里思考的越丰富,写下越多的记录,在实践中印证和理解概念就越清晰和有章法。
  • https://zhuanlan.zhihu.com/p/19970642?winzoom=1
    • 驱动
    • 责任
      • 猪、鸡、鹦鹉
      • 南郭先生
    • 交流
      • 外部交流成本
      • 内部交流成本
    • 远虑和近忧
      • 【一群牛人在 “没有近忧,只有远虑” 的条件下讨论问题,最后只能议而不决。 在一次次延续到深夜的讨论中,有人感慨 – "How is this night different from all other nights?" 】
    • 项目收敛的条件是什么
      • 怎样做

隐喻,定律:

  • make it work, right, fast

    • work了未必right

      • right了需要fast

        • 也只有right的才能fast
    • 做到这三点并不容易,当一个可以work的软件一直出未知的错误,我们就要去深入剖析下哪些没做对的事情。
    • right,事实上需要应用我们的逻辑能力:证明与反驳。
      • mcs-page-19:【The analogy between good proofs and good programs extends beyond structure. The same rigorous thinking needed for proofs is essential in the design of critical computer systems.】
  • Basics of the Unix Philosophy
    • 影响深远的Unix哲学

      • 管道思想,所有链式设计的原型
      • 一个程序只做一件事,并且把这件事做好、做对、做快
      • 使用和创造工具解决问题
      • 通过做Profile探测瓶颈
      • 围绕数据结构编程而不是算法
      • 关于模块、分类、组合、分离...
  • Backfire effect
    • 所谓“固执己见”。怎样才能避免这样的效应?

  • regression toward to mean
  • 破窗效应(Broken windows theory)
    • 为什么要有编码规范?看你在一堆糟糕的代码里添加代码,你是否也会添加的更随意?
    • 为什么要合适的命名?当你看到一堆随意的命名时,你是否也会增加另一个随意的命名?
    • 为什么要选择优秀的人,淘汰混日子的人?当你看到一堆人在混日子,你是否也会觉得自己混日子是自然的。
    • 为什么要创新?当大家都在使用落后的技术的时候,你是否也会觉的好像新技术也没什么用?

书籍:

个人:

  • 软件开发只需要写代码就可以么?

    • 但是不擅长其他各方面的所谓书呆子,可以从写代码这个相对聚焦的地方开始入手,书呆子们的智力,可以从写代码开始发挥,慢慢再展开到其他方面。
    • 然后通过结构化的方式把代码之外工程上的其他环节训练到位。怎样算结构化,例如手绘流程图虽然不错,但是使用思维导图工具可以增加对结构的约束和规范。
  • 有哪些老鸟程序员知道而新手不知道的小技巧?
    • 所谓小技巧是在破除了种种迷思之后,逻辑上正确的解法,或者最佳实践。
  • 深度程序员-机器取代程序员?
    • 编译器和连接器事实上让我们不必再写汇编语言,所以我认为即使有更高级的机器编写程序的事情出现,也不会替代程序员这个行业,到时候程序员只是做越来越高阶的程序工作而已,只是由于抽象泄漏法则,写低阶代码的程序员也会一直存在。
  • 编程的智慧
    • DRY(Do Not Repeat YourSelf)容易引起误解的地方之一就在于好像重复一定是坏事,这篇文章里展现了许多必要的重复。

      • “写无懈可击的代码”,这是重要的地方,我记得早期在学校里一个大一的学生在还没学会循环结构,仅仅使用if else就把复杂的逻辑写的清清楚楚的作业,我的计算机启蒙老师说这个学生的思维很严密。
  • 开发者大多靠自学,还需要大学学位吗?
  • Three Attitudes that Lead to Maintainable Code
    • Change Your Perspective, => 结对编程的一种效果,【At Atomic Object, we often do pair programming, which is a great way to immediately get answers to these questions from someone who is not you.】
    • Neatness Matters,=> 编码规范,自说明
    • Avoid Special Cases,=> 从根上解决问题

结对:

  • 联合创始人之间的冲突

    • 联合创始人之间的沟通合作,也符合结对编程中两个程序员之间会遇到的问题。行为/表现,习惯/动机,本质/固有。

CodeReview

估计与耗时:

教师/助教

项目设计

  • 算法-类库-编程既服务

    • 如何从算法进阶到类库,从类库进阶到服务、从服务进阶到PaaS平台?
    • 程序=算法+数据结构有长久的生命力。当然软件=程序+软件工程,在这个过程中有大量的活要做。设计练习项目的时候,可以采用这种思路。

开发与实现

遗留项目:

  • http://fabiensanglard.net/Compile_Like_Its_1992/

    • https://en.wikipedia.org/wiki/Legacy_system

      • "In computing, a legacy system is an old method, technology, computer system, or application program, "of, relating to, or being a previous or outdated computer system."[1] Often a pejorative term, referencing a system as "legacy" means that it paved the way for the standards that would follow it. This can also imply that the system is out of date or in need of replacement."
      • 在我经历过的项目里,遗留项目多多少少都有价值,甚至新系统很多时候都是在重复做遗留项目做过的事情,遗留项目甚至有些是先进的,然而因为各种原因被丢弃了。从遗留项目里,实际上是可以学到很多宝贵的东西。

人、绩效与职业道德

软工+C(3): 超链接的更多相关文章

  1. [2017BUAA软工助教]博客格式的详细说明

    一.为什么要强调博客格式 可以对比粗读一下这几篇博客然后自己感受一下博客格式对博客阅读体验的影响: MarkDown流:    [schaepher]2017春季 JMU 1414软工助教 链接汇总 ...

  2. 软工+C(4): Alpha/Beta换人

    // 上一篇:超链接 // 下一篇:工具和结构化 注:在一次软件工程讨论课程进度设计的过程中,出现了这个关于 Alpha/Beta换人机制的讨论,这个机制在不同学校有不同的实施,本篇积累各方观点,持续 ...

  3. [2017BUAA软工助教]常见问题Q&A

    软工常见问题Q&A 目录: 1. 转会相关 1.1 转会流程是什么样子的? 1.2 团队中多人要求转会怎么办?(如何解散团队) 1.3 为什么有人想要转会? 1.4 软件工程课为什么有这一环节 ...

  4. 软工实践第五次作业-WordCount进阶需求

    软工实践作业(五) GitHub 作业链接 结对博客 031602240 具体分工 PSP表格 代码规范 解题思路与设计说明 爬虫使用 代码组织与内部实现设计(类图) 算法关键 实现方法 流程图 附加 ...

  5. 软工实践——结对作业2【wordCount进阶需求】

    附录: 队友的博客链接 本次作业的博客链接 同名仓库项目地址 一.具体分工 我负责撰写爬虫爬取信息以及代码整合测试,队友子恒负责写词组词频统计功能的代码. 二.PSP表格 PSP2.1 Persona ...

  6. 软工案例分析之OJ

    项目 内容 这个作业属于哪个课程 2021春季计算机学院软件工程(罗杰 任健) 这个作业的要求在哪里 案例分析作业要求 我在这个课程的目标是 和我的团队开发一个真正的软件,一起提升开发与合作的能力 这 ...

  7. [BUAA2021软工助教]个人阅读作业#2小结

    作业链接 见个人阅读作业#2 优秀作业推荐 Shaun_Yao ✍️ 道法之间--软工第2次博客作业 Potassium ✍️ 构之有道,建之有法--软工个人阅读作业#2 MarkDay ✍️ < ...

  8. 软工实践——github文件整理

    软工实践中,整理github上文件遇到的一些问题 先扔github链接Transcend/ActivityHelper 1.原来呢我们团队的github上的文件的安排十分凌乱,没有归档.把说明文档.源 ...

  9. 关于软工项目beta版本

    项目总结 项目成员: 黄丰润 031302307 王旭銮 031302320 张家俊 031302329 张晓燕 031302343 项目完成度:实现了专业信息填写.查看,教师信息填写,报课和查看课表 ...

随机推荐

  1. webpack4.0各个击破(3)—— Assets篇

    目录 一. Assets资源的基本处理需求 二. webpack处理引用资源 2.1 资源打标 2.2 引用优化 2.3 sprites雪碧图合成 2.4 图片压缩及其他 webpack作为前端最火的 ...

  2. javascript小实例,阻止浏览器默认行为,真的能阻止吗?支持IE和标准浏览器的阻止默认行为的方法

    看到这标题,是不是有点逆天的感觉,总感觉好狂拽炫酷,耳边隐隐约约传来一个声音:你这么叼,你咋不上天呢! ~~ 额,好吧! 话入正题,我为什么会提出这么一个问题呢? 阻止浏览器默认行为,真的能阻止吗?那 ...

  3. vb.net 分割byte数组的方法SplitBytes

    以下代码随手写的 并没有大量测试 效率也有待提升 如果需要C#的请自行转换 Function SplitBytes(Data As Byte(), Delimiter As Byte()) As Li ...

  4. php7 闭包调用

    早起的版本如 PHP5.6 ,绑定并调用闭包使用 bindTo,而PHP7 中 Closure :: call()方法具有更好的性能,废话不多说, 较早的 PHP 示例: <?php class ...

  5. Mysql is null 索引

    看到很多网上谈优化mysql的文章,发现很多在谈到mysql的null是不走索引的,在此我觉得很有必要纠正下这类结论.mysql is null是有索引的,而且是很高效的,(版本:mysql5.5)表 ...

  6. 数据结构(java版)学习笔记(三)——线性表之单链表

    单链表的优点: 长度不固定,可以任意增删. 单链表的缺点: 存储密度小,因为每个数据元素,都需要额外存储一个指向下一元素的指针(双链表则需要两个指针). 要访问特定元素,只能从链表头开始,遍历到该元素 ...

  7. asp.net core webapi/website+Azure DevOps+GitHub+Docker

    asp.net core webapi/website+Azure DevOps+GitHub+Docker 新春开篇作,主要写一下关于asp.net core web/api 2.2 项目借助dev ...

  8. C++ 死循环在语言层面的检测

    英文概念 Infinite loop without side-effects 这个目前只有CLang实现了这个C++特色 #include <iostream> int 费马定理() { ...

  9. TomCat的安装及测试

    1.每个版本的安装都是一样,解压之后是一个文件夹 2.配置环境变量,右击我的电脑,属性--高级属性设置--环境变量--新建--配path即可(path后加;%CATALINA_HOME%\bin;) ...

  10. MySQL慢查询日志释疑总结

      之前写了一篇"MySQL慢查询日志总结",总结了一些MySQL慢查询日志常用的相关知识,这里总结一下在工作当中遇到关于MySQL慢查询日志的相关细节问题,有些是释疑或自己有疑惑 ...