• 梦断代码阅读笔记03


    只要我们持续要求软件完成新任务、解决新问题,修正今天的缺陷
    就不能让我们免于明天的崩溃。在打算重复成功时,虽然软件方法论非
    常有帮助,你还是只能照葫芦画瓢。如果是在探寻未知的领域,最佳实
    践可能会帮助你稍微加快一点进度, 但却无法指点前进方向。
    软件开发常与建筑工业相提并论,但这种类比在某种意义上站不住
    脚。尽管我们学会如何建造解决特定问题的建筑一供一 家人居住,或
    者为治疗病患提供合适的空间一我们还是得不停建造更多建筑。 不管
    我多喜欢你的房子,我也不能据为己有一你已经住在里面了, 如果我
    也想要,就得再建一幢。软件可不是这样;只要我们知道如何写一套程
    序来计算支票簿余额或显示一-张网页, 那这个程序的额外副本完全没有
    生产成本,你付出的价钱,如果你给钱的话,是为了奖励设计出软件的
    人,而不是为了制造这份副本。

    所以,如果有人写过满足你需要功能的软件,那么买-套总比你自
    己从头写一套来得便宜。
    然而,-次又一次,我们发现自己所需之物总与现有之物差异甚大,
    只能编写新代码。例如,在Salon, 20 世纪90年代末,我们意识到需要
    自动化发布文章。当时最流行的"内容管理” 软件是一套叫做Vignette
    的大系统,价格高达6位数。该公司销售人员到我们办公室拜访,描述
    了软件的几百种有用特性。很不幸,其中大多数我们并不需要。另外还
    有-大把我们确乎需要、而Vignette却没有做到的功能。所以我们请了
    一些程序员, 编写自己的系统。
    所有的软件作家迟早都会提出一条以自己名字命名的法则,现在是
    我满怀谦卑地呈示罗森伯格法则的时候了:软件好做,除非你想让它完
    成新任务。接下来当然可以推论:只有完成新任务的软件才是值得做的
    软件。

    当然,Cosmo只用了一名程序员,这很有帮助:不必在沟通上花太
    多成本。不过编写服务器软件与编写用户端软件相比也确有一些优势。
    服务器是一种几乎只与其他程序和机器交互的程序;它很少需要和人类
    直接沟通。在需要这样做时一例如, 初次配置时或遇到问题时一与
    之交谈的人往往是位专家、-位通晓服务器语言的系统管理员或程序员。
    在Chandler团队努力将人类思维过程和工作习惯与软件系统和界面
    协调起来时,遇到了吐着毒信的大蛇,而Cosmo就不会遭此劫难。莫斯
    利和杜索特面对的是相对更可管理的问题集一比如, 新用户如何设立
    账户?或者,处于不同时区的用户互相共享日历时如何衔接时间?继
    Chandler变化不定的目标和不断拉长的日程之后,Cosmo仔细定义的边
    界成为了-种安慰。
    OSAF领导层有意在Chandler 0.5中缩减他们的野心,瞄向较低的目
    标。他们暂时忘记了组织整个数据宇宙、让外部程序员能够自由扩展程
    序的承诺。他们告诉团队成员,Agenda 之魂固然美妙,但眼前我们是不
    是就该只做个能工作的日历程序呢?
    但是到了,2004年11月,进入0.5版开发之时,就连这并不远大的
    目标也难以企及。
    只是让应用程序实现其功能也难以做到。他们取得了- -些进展:约
    翰●安德森和唐●登曼根据一套新的“构建块树”设计方案修改了CPIA
    框架,他们希望这套方案能让未来的修改更为快速、容易。戴维●萨鲁
    维终于差不多修正了自安德森初次将其登记为缺陷以来一直困扰
    Chandler的闪烁问题。有了WebDAV的帮助,共享成真一-而且, 按照
    一套简单的新 “共享邀请"方式,Chandler 用户只要用电子邮件给其他

    用户发送一张“票据",接收者就能得到访问共享日历的授权。迷你日历
    导航器( 多数日历程序中本月、上月、下月日历的缩微显示版本)现在
    工作正常,而且看起来似模似样。安蒂●维达和泰德●梁通过大量中小
    规模的调优,提高了资料库的运行速度。
    不过这些进展并不太有助于实现卡普尔想要开始使用的狗食版软
    件。与此同时,新进成员的加入也拖慢了进度。在登曼准备离职期间,
    OSAF招进了布莱恩●斯特恩斯( Bryan Stearns),他20年前曾与登曼在
    早期麦金塔团队共事。斯特恩斯接手了细节视图的开发。还有短暂脱离
    编程工作承担教职的网景公司资深开发人员阿列克●福莱特,以及曾在
    史蒂夫●乔布斯的NeXT公司长期任职、最近在苹果公司负责电子邮件
    程序开发的格兰特●贝列( Grant Balliel),也在1月份加入了OSAF。长
    久而言,新面孔的加入能增强力量,但短期内他们得花些时间研究
    Chandler。布鲁克斯法则屡试不爽。
    Chandler现在有150 万行代码,其中多数需要与wxWidgets 和
    Twisted等其他项目整合工作OSAF开发者们编写了130,000 行Chandler
    专有的Python代码。如OSAF -位暑期实习生所言,进入这个项目就像
    是到了一座新城市、拼命想找到自己的方向。
    2005年3月30日,0.5版发布一天后,我问卡普尔,项目进行了这
    么长时间,而且还有很长的路要走,他是否会感到气馁。“我知道,我们
    会做出某种伟大的东西,”他说,“只是不知道还要经过多少波折。”

    个人感受:我们在做软件时要有耐心有耐心,但又不能太拖沓,不能

    等自己做完外界地需求就过时了,我这两天优化了一个疫情信息展示系

    统,但感觉就有些晚了,相关的web应用几个月之前就有了,我们只是

    在做作业中学习,以后我们要盯住这种契机,要有敏感性。

    解决方案:保持敏锐的洞察力

  • 相关阅读:
    CS1704问题汇总
    Android hdpi ldpi mdpi xhdpi xxhdpi适配详解
    Mac开发工具汇总
    Objective-C语法之代码块(block)的使用 (转载)
    iOS学习之Object-C语言属性和点语法(转载收集)
    object-c中疑问
    Android ListVeiw控件(转载整理)
    Android Studio--》Gradle Scripts配置说明
    xutils android studio引用问题
    15 个 Android 通用流行框架大全(转载)
  • 原文地址:https://www.cnblogs.com/XiaoGao128/p/13052537.html
Copyright © 2020-2023  润新知