Joel谈优秀软件开发这本书在图书馆近日稍微看另一部分,更像一个散文集,讲了软件开发中的方方面面。下面是一些记录,书本中提到的一些网址摘录在下面,大家有空的可以去看看,有些挺不错的。
1.Ken Arnold:编程风格是主旨 www.artima.com/weblogs/index.jsp?blogger=arnold
www.artima.com/weblogs/viewpost.jsp?thread=74230

Python是第一个将编程风格纳入编译器错误之中的语言(通过缩进表达层次结构)。

编程风格问题是针对人编程还是针对机器编程的问题。为什么不只使用一种方式来针对人眼和编译器来统一编程。对于任意一种给定的语言只存在一种或少数几种通用的编程风格;永远不会出现一种与众不同的编程风格;很多时间和精力都耗费在由于编程风格不同引起的问题上;对任何一个项目来说采用统一的编程风格总是很好的。若能统一世界上的所有编程风格那么就可以将更多的精力投入到其他有价值的事情上去,而且再也没有编程风格之争了。IDE和编辑器花费了大量的资源和精力用在编程风格的转换上面了。

2.Leon Bambrick:最愚蠢用户界面奖:Windows搜索界面 而google的用户界面非常好。

www.secretgeek.net/ms_search.asp#

3.Michael Bean:程序员外包的隐患 www.forio.com/outsourcing.htm

"软件外包"或"将工作转移至海外":软件开发是设计而不是制造技术。

衣服和玩具是在海外制造(中国),因为有大量的廉价劳动力;软件外包是同样的道理(中国和印度有大量的廉价程序员);但软件开发外包上是一个严重的战略错误,(应该好好区分运营效率(如制造外包)和企业战略)。因为软件公司应该关注软件开发中的创新能力,如果将其外包就会失去自己的核心竞争力。

只有当开发的软件产品不是关键创新部分是雇佣外包程序员才是有效的方法:如网站设计工作和库存控制等外包出去可以有效的提高企业的运营效率。然而那些需要高超的开发和设计技巧的创新软件是不可能在流水线上装配出来的,因此若将其外包整个公司将失去创新能力,最终失去竞争优势。

因此一个公司要把握自己的核心竞争力在哪里,把不相关的有效的外包出去,有效提高自己的运营效率,对核心工作因加大创新的力度和创新的步伐。

设计是创新工作,设计不等于装配:服装生产成本90%用户装配和制造,10%用于设计。而软件生产成本中恰好相反:10%的装配和制造、90%设计,不过当构件组装技术成熟以后这个可能发生变化,抑或构件或服务组装永远也不会成功,因为软件设计和开发是创新性活动,要产生优秀的软件必须自己去定制。

定制和批量生产各有利弊。定制可以灵活而个性化、批量可以快速生产而标准化。

4.Adam Bosworth: www.adambosworth.net/archives/000031.html

聪明的计算机科学家建立很多宏伟而复杂的体系结构,但由于复杂度已经超出了常人的理解能力,因此无法得到广泛的应用,而真正聪明的计算机科学家能够利用智慧来简化设计方案使设计服务于大众,这样设计的体系结构才能真正发挥作用。

如:SGML简化以后衍生HTML、XML等得到广泛应用,FTP经过简化得到HTTP协议:这都是Tim Berners-Lee所为。对于编程语言也是如此:C++变得越来越复杂,而VB和PHP很好用有很多用户转向了这两种语言,因此语言的发明者也应该谨记要保持语言的精简。VOIP技术,因为H.323过于复杂而没有得到广泛应用,从Skype出现后才渐渐流行起来。

以上就是:坚持简单而基本的想法。--KISS:keeping it simple and stupid

5.关于程序员加班的故事:程序员应该保持轻松愉悦的工作状态,不能超负荷加班。<人件>一本讲述程序员工作的书籍。

6.Bruce Eckel:强类型与强测试。www.MindView.net  http://mindview.net/WebLog/log-2005

静态类型检查:编译器在编译时对所有变量的类型进行正确性检查。

动态类型检查:变量的类型检查在程序运行时进行的:执行时才会看到类型错误。灵活但运行效率不高,而且错误发现时机过晚。执行效率影响。

静态类型检查不能保证产生正确的代码,而动态类型检查也不一定会导致错误代码的产生:如果没有经过测试那么软件就是不可用的;我们需要的是强测试而不是强类型。编译器只是一种形式上的测试。

www.artima.com/weblogs/viewpost.jsp?thread=4639

http://www.ericsink.com/bos

http://www.shirky.com/writings/group_enemy.html

http://blogs.msdn.com/rick_schaut/archive/2004/02/26/80193.aspx

http://blogs.msdn.com/larryosterman/archive/2004/04/20/116998.aspx

http://ejohnson.blogs.com/software/2004/11/i_find_c_intere.html

http://www.randsinrepose.com/archives/2004/07/10/what_to_do_when_youre_screwed.html

http://ejohnson.blogs.com/software/2004/11/i_find_c_intere.html

http://www.eaipatterns.com/ramblings/18_starbucks.html

http://www.eaipatterns.com/downloads.html

http://www.joelonsoftware.com/articles/APIWar.html

http://daringfireball.net/2004/06/location_field

http://paulgraham.com/gh.html

http://www.ftrain.com/colophonic.html

http://www.artima.com/weblogs/index.jsp?blogger=unclebob

http://knowfree.net/2007/02/10/the-best-software-writing-i-apress.kf

http://www.joelonsoftware.com/articles/BestSoftwareWriting.html

Joel谈优秀软件开发-摘录相关推荐

  1. 软件工程:浅谈人工智能软件开发与传统软件开发的区别

    题目:浅谈人工智能软件开发与传统软件开发的区别 摘要:人工智能的飞速发展带动着软件工程的发展,最终使得软件工程产生新的变革.因为人工智能特有的性质,因而导致了人工智能软件与传统软件的差异性.本文对比了 ...

  2. 浅谈 RISC-V 软件开发生态之 IDE

    软件开发者是芯片公司非常重要的资产,CPU做出来是不够的,要让更多的软件开发者用这颗芯片才是成功.国际大厂们都有一只较大的软件团队,在做面向开发者的软件工具和SDK等.--张先轶博士:为什么RISC- ...

  3. Vaughn Vernon谈当今软件开发所面临的挑战

    Vaughn Vernon举办了一场演讲,阐述了他所遇到的各种软件开发方面的严重问题,但也为这些问题提出了应对的方案.在他看来,大量的项目与开发团队都深陷设计糟糕的系统中难以摆脱,无数开发者在不停地为 ...

  4. 浅谈管理软件开发类项目是怎么来的,怎么接到项目的,欢迎大家补充

    为什么80%的码农都做不了架构师?>>>    其实很多人问过我,吉日你的软件项目都是哪里来的?为啥你有做不完的软件项目? 我也简单理了一下思路,跟大家一起分享一下: 01: 首先你 ...

  5. 浅谈移动软件开发与电脑软件开发发展前景

    首先,先说下当下的情况,我国经济的高速发展对计算机软件行业需求越来越高,因此国家根据实际需求加大了对软件行业的各项投入,如资金.人力.物力.政策. 软件行业是国家重点鼓励和支持的行业,他的发展前景肯定 ...

  6. 浅谈在软件开发中的开发与测试 - 下

    介绍了一下测试的必要性,再回过头来继续说开发与测试的"矛盾",其实这个矛盾从本质上来说是由于绩效管理时过分强调了开发人员造成的Bug,而这个"过分强调"又必须是 ...

  7. The Joel Test:Joel 用来评价软件开发团队成熟度的12个问题

    转自:http://www.cnblogs.com/supercpp/archive/2011/11/10/2245087.html 如果你与软件行业有若干联系,但是还不知道Joel这个人以及他的博客 ...

  8. 软件随想录:程序员部落酋长Joel谈软件(阮一峰译)-2

    2. 寻找优秀的程序员 2006年9月6日,星期三 优秀的程序员都在哪里 这是你第一次公开招募雇员.如同大多数人一样,你会发布广告,可能也会浏览一些大型的网上论坛,然后你就收到了一吨的简历. 一份份看 ...

  9. 浅谈软件开发工具CASE在软件项目开发中发挥的作用认识

    浅谈软件开发工具CASE在软件项目开发中发挥的作用认识 内容摘要:阐述了CASE工具作为 一种开发环境在软件项目开发中所起到的开发及管理作用.CASE工具实际上是把原先由手工完成的开发过程转变为以自动 ...

最新文章

  1. 近十年和近三年智能车竞赛国赛奖项在各赛区的分布分析
  2. 富二代谈起中国做技术的地位(转载)
  3. 爆款入门 | 第 14 期微生物组-扩增子16S分析和可视化(线上/线下同时开课,2022.4)...
  4. 蔚来汽车股票一日成交额达274亿美元 居美股榜首
  5. mysql的or能去重吗_mysql中bit_count和bit_or函数的含义
  6. JDBC的API与德鲁伊Druid连接池配置
  7. python打包exe_Python | 用Pyinstaller打包发布exe应用
  8. CentOS 7 LNMP环境搭建 Zabbix3.4
  9. Java Memcached的使用
  10. 俄罗斯方块,消消乐源码下载
  11. 【读书笔记】《M型社会》大前研一
  12. 教育部重磅文件:2020年起取消自主招生,推出强基计划
  13. Python学习笔记(5)-集成开发环境IDLE的使用与调试
  14. java在线编译器_java在线编译器-youjavait.com
  15. 山东二本计算机排名大学最新,2018山东二本大学排名
  16. Squoosh在线无损图片压缩工具中文版,JPG/webP/PNG/互转
  17. 全面剖析固态硬盘M.2接口与PCI-E SSD固态硬盘的关系
  18. 海思3559编译live555
  19. 如何快速解决Github下载源码编译报错并顺利运行机器人等项目案例(Webots+ROS2)
  20. 做了6年的小猎头跟大家分享工作经验

热门文章

  1. Excel表格插入斜线
  2. vue组件通信1:父传子(props)
  3. 群晖存储空间不足-处理方案一
  4. 基于NFC的毕业纪念卡片
  5. 局域网内其他电脑连接NAT模式虚拟机
  6. 北京龙庆峡自助游及攻略
  7. 品牌软文营销借助故事的力量打动用户
  8. iText如何设置行距
  9. 基于B/S模式的设备管理系统开发
  10. 华大HC32L130 SPI和GPIO模拟驱动NF-03和NF-01-s模块(SI24R1方案,兼容NRF24L01)