zoukankan      html  css  js  c++  java
  • 程序员的修炼之道:从小工到专家(一)

      阅读进度:

      第一章  注重实效的哲学(1~6)

      第二章  注重实效的途径(7~8)

     

      第一次阅读这本书,说句老实话,由于水平有限,编 0程的经验又不足,觉得读起来有点晦涩,不太习惯这种文章的描述风格,没有读多少,下面就把阅读之后有所感的的部分摘录下来...

      序:

      注重实效的程序员的特征

      <1>早期的采纳者/快速的改编者;

      <2>好奇;

      <3>批判的思考者;

      <4>有现实感;

      <5>多才多艺;

      <6>关心你的技艺;

      <7>思考你的工作;

      <8>跃出直接的问题去思考,总是设法把问题放在更大的语境中,总是设法注意更大的图景;

     

      第一章  注重实效的哲学

      (1)我的源码让猫给吃了

        <1.1>负责。提供各种选择,不要找蹩脚的借口;

      (2)软件的熵

        <2.1>不要容忍破玻璃。杜绝软件中的无序增长("软件腐烂");

      (3)石头汤与煮青蛙

         <3.1>做变化的催化剂;

            人们发现,参与正在发生的成功要更容易。让他们瞥见未来,你就能让他们聚集在你的周围

        <3.2>记住大图景;

            不要像青蛙一样,要留意大图景,要持续不断的观察周围发生的事情,而不只是你自己在做的事情

      (4)足够好的软件

        <4.1>欲求更好,常把好事变糟;

            现实世界不会让我们制作出十分完美的产品,特别是不会有无错的软件。时间、技术和急躁都在合谋反对我们

        <4.2>让你的用户参与权衡;

        <4.3>使质量成为需求问题;

              你所制作的系统的范围和质量应该作为系统需求的一部分规定下来

        <4.4>知道何时止步;

      (5)你的知识资产

        <5.1>知识上的投资总能得到最好的回报;

        <5.2>经营你的资产:

          <5.2.1>定期投资

               你必须定期为你的知识资产投资,即使投资量很小,习惯自身也和总量一样重要

          <5.2.2>多元化

              作为底线,你需要知道 你目前所用的特定技术的各种特性。你掌握的技术越多,你就越能更好的进行调整,赶上变化

          <5.2.3>管理风险

              高风险,可能高回报,低风险,低回报;不要把你所有的技术鸡蛋放在一个篮子里;

          <5.2.4>低买高卖

               在新兴技术流行之前学习它,可能就和找到被低估的股票一样困难,但所得到的就和那样的股票带来的受益一样

          <5.2.5>重新评估和平衡

               这是一个非常动荡的行业,你一个月之前所用的知识可能迅速过时,你好久之前研究过的东东,可能需要被重新启用,需要灵活学习与温故

        <5.3>定期为你的知识资产投资

            每年至少学习一门新语言、每季度阅读一本技术书籍、也要阅读非技术书籍、上课、参加本地用户组织、试验不同的环境、跟上潮流、上网

        <5.4>学习机会

            各种学习资源,包括请教大神

        <5.5>批判的思考

              批判地思考你读到的和听到的,你需要确保你的资产中的知识是准确的,并且没有受到供应商或媒体炒作的影响

      (6)交流

        <6.1>知道你要说什么

            规划你想要说的东西,写出大纲。然后问你自己:"这是否讲清了我要说的所有内容?",提炼它,直到确实如此为止

        <6.2>了解你的听众

             只有当你是在传达信息时,你才是在交流。为此,你需要了解你的听众的需要、兴趣、能力

        <6.3>选择时机

        <6.4>选择风格

               调整你的交流风格,让其适应你的听众

        <6.5>让文档美观

        <6.6>让听众参与

            如果可能,让你的读者参与文档的早期草稿制作,获取他们的反馈,并汲取他们的智慧,你将建立良好的工作关系,很可能制作出更好的文档

        <6.7>做倾听者

        <6.8>回复他人

            你说什么和你怎么说同样重要

     

      第二章  注重实效的途径     

      (7)重复的危害

        <7.1>DRY:Don't Repeat Youself!

           我们觉得,可靠地开发软件,并让我们的开发更易于理解和维护的唯一途径,是遵循我们称之为DRY的原则:

           系统中的每一项知识都必须具有单一、无歧义、权威的表示

        <7.2>重复是怎样发生的?

            强加的重复、无意的重复、无耐性的重复、开发者之间的重复

      (8)正交性

        <8.1>什么是正交性?

             在计算机技术中,该技术用于表示某种不依赖性或是解耦性。

        <8.2>正交的好处

            我们想要设计自足(self-contained)的组件:独立,具有单一、良好定义的目的(可称之为"内聚")。如果组件相互隔离,你就知道你能够改变其中之一,而不用担心其余组件。只要你不改变组件的外部接口,你就可以放心,你不会造成波及整个系统的问题。

           <8.2.1>提高生产率

              <8.2.1.1>改动得以局部化,较少开发和测试时间;

              <8.2.1.2>正交的途径还能够促进复用,如果组件具有明确而具体、良好定义的责任,就可以用其最初的实现者未曾想象过的方式,把它们与新组件组合在一起;

              <8.2.1.3>如果你对正交的组件进行组合,生产率会有微妙的提高,假定某组件做M件事情,而另一组件做N件事情,如果它们正交,把它们组合在一起,结果就能做M*N件事情;

           <8.2.2>降低风险

              <8.2.2.1>有问题的代码区域被隔离开来

              <8.2.2.2>所得系统更加健壮

              <8.2.2.3>可能得到更好的测试

              <8.2.2.4>不会与特定的供应商、产品或是平台紧绑在一起

        <8.3>从编码的角度看正交(书中还从其他的方面解读了"正交",目前本人只要求自己从编码角度去理解)

            <8.3.1>让你的代码保持解耦

            <8.3.2>避免使用全局数据

            <8.3.3>避免编写相似的函数

  • 相关阅读:
    解决php网页运行超时问题:Maximum execution time of 30 seconds exceeded
    C#操作Xml:XSLT语法 在.net中使用XSLT转换xml文档示例
    C#操作Xml:XPath语法 在C#中使用XPath示例
    C#操作Xml:XmlSerializer 对象的Xml序列化和反序列化
    C#操作Xml:如何定义Xsd文件
    C#操作Xml:linq to xml操作XML
    C#操作Xml:使用XmlWriter写Xml
    C#操作Xml:使用XmlReader读Xml
    C#操作Xml:通过XmlDocument读写Xml文档
    XML的序列化和反序列化 详细介绍
  • 原文地址:https://www.cnblogs.com/BlueGeek/p/2879045.html
Copyright © 2011-2022 走看看