• 《梦断代码》阅读笔记(二)


     在第四章《乐高王国》中,有一段是Chandler的后台工作陷入了作出艰难技术决定的迷宫,而麦卡斯科猛然间发现自己正深处迷宫中央。麦卡斯科曾经在自己的“树龙”blog中记载开发新编程语言的项目,他加入OSAF后,又开始在blog上满怀热情地逐封回复探讨技术的邮件。对于回复某篇写到:“我们打算尽可能多地复用现有代码,少写新代码。要加快工作进程,就得尽量避免踏入新的编码地带。”

      在我们编程的很多时候,觉得差不多作用的代码就复制过来,然后改一下错误的地方。而曾经一位老师和我们说:“复制代码是一切错误的来源。”所以,想要复制代码时也要谨慎啊!

       现今最为普遍使用的计算机数据库,——比如获得巨大成功的Oracle产品,或者日益流行的开源产品MySQL——是“关系型数据库”,信息被打散成离散的小单元,存储在大表中,你可以构造复杂的查询语句、有效组合这些信息——例如“展示从这个信息开始的,姓以‘c’开头的、但不包括那些遗漏了街道地址的所有数据。”因为有一种叫做“事务”的模型,关系数据库通常相当可靠。事务模型记录对每个小数据的每次修改,这样,当发生崩溃或数据损坏的,还能重建信息。

      实现“对象持久化”最简单的手段就是采用另一种数据库技术,即对象数据库,对象数据库把一段代码和与之相关的数据打包存储。数据和代码一起存储便于程序员编写功能代码,但也会比较慢,同时也比较不可靠。

            模块化和组件化是软件人员的梦想,谁都想把几个模块插到一起就可以完美的运行并完成任务,但现实却相当残酷,可以运行的模块通常不能与自己想写的程序配合工作,好的源代码由于商业利益也不太容易找到,程序员只能自己另起炉灶,搭建自己的模块,但结果还是一样,做出来的东西难以让他人共享,这个现象周而复始,不断地在多个程序员身上上演。

            最近有一个叫组件管理方面的项目,听起来让人毫无信心,连运行在什么平台上、给什么用户使用都不清晰,这样的组件管理有什么用?还不如就叫做文档管理算了。书中提到一个叫考克斯的人,他创办了一家叫做Stepstone的公司,致力于向C语言系统搭造者提供插入式芯片级软件组件,最后的结论是:坏消息是这次试验显示,即便采用最新的技术,要想设计和制造既有用又真能复用的组件、为组件写文档以便于客户理解、移植组件到潮水般不断涌现的新硬件平台上、确保最新的改进或发布版本不与现存接口冲突、将组件销售到类似威廉姆斯堡枪械行业那种鼓励从头做起的价值体系,都是极其困难的。

  • 相关阅读:
    c++:资源管理(RAII)、new/delete的使用、接口设计与声明、swap函数
    C++普通链表增删、倒序打印
    Android-UI:按钮监听&文字/图片/进度条&动态变更&dialog&布局&自定义布局/控件/响应事件
    Android-活动生命周期&Bundle回收临时数据&活动启动模式&常用技巧
    C++字符串空格替换题
    C++二维数组查找题
    c++:const、初始化、copy构造/析构/赋值函数
    C++赋值运算符函数
    Android-活动创建&Toast&Menu&Intent
    用yarn代替cnpm,cnpm漏包有点严重
  • 原文地址:https://www.cnblogs.com/lq13035130506/p/10424013.html
Copyright © 2020-2023  润新知