飞道的博客

程序员修炼之道_2021-01-19

253人阅读  评论(0)

黑板

在项目中涉及工作流或分布式数据采集的过程中,我们会把了解的信息、限制都罗列在黑板上。围绕简单的黑板模型设计解决方案可以有效接触对象之间的耦合,提供一个供消费者和生产者匿名、异步交换数据的平台,减少了必须编写代码的数量。当分布式系统过大时,系统中每一个分布式事务和API调用时,随着接口和交互的组合爆照时,项目就会变成噩梦。解决方案是对黑板进行分区,并以某种方式组织黑板上的资料。黑板式编程消除了太多接口的需要,从而带来更优雅、更一致的系统。

假设在编写一个程序时,我们要设法处理每一种可能的组合和情况,通常我们会使用工作流系统去解决,可能会很复杂。当对应的规章制度发生变化时,工作流也要对应的发生改变。这个时候我们可以考虑用黑板协助工作流,协调完全不同的事实和因素,同时又使各参与方保持独立、甚至隔离。

虽然黑板这一小节没有读的太明白,但是围绕需求设计接口接触耦合这份功底还是需要在工作中多多运用和思考,日常也需要多阅读一些优秀的代码。


编码

编码不是机械工作,如果要让程序长久、无误和富有生产力的正常运行,就必须对决策进行仔细的思考和判断。不主动思考的代码往往是开发者依靠巧合编程,注重实效的程序员批判地思考所有代码,不断的进行“重构”修正现有代码。也通过“算法速率”估算代码的运行速度从而发现一些潜在的问题。只要你在制作代码就一定要让代码易于测试。最后,在“邪恶的向导”中,小心使用自动生成大量代码的工具,除非理解透彻。一定要保持不断查看代码、检查潜在的问题,可以很大程度防止灾难发生。


巧合编程

巧合编程指依靠运气和偶然的成功编程。巧合编程实现的几种可能性?实现的偶然、语境的偶然、隐含的假定

  • 实现的偶然指的是那些代码现在的编写方式才得以发生的事情。尽管看起来能工作,但事实上之上一个巧合。
  • 语境的偶然指的是依赖没有保证的东西。
  • 隐含的假定指的是人在头脑中有许多假定工作,并非以明确的事实为基础的假定是所有项目的祸害。不要假定,要证明。事实不需要讨论,观点才需要讨论。

怎样深思熟虑的编程

  • 总是意识到自己在做什么
  • 不要盲目编程,不要试图构建不理解的应用,使用不熟悉的技术,不要被巧合误导。
  • 按照计划行事
  • 依靠可靠的事物,不要依靠巧合和假定。
  • 为你的假定建立文档,按照合约设计。
  • 不要只是测试你的代码,还要测试你的假定。不要猜测,要实际尝试他。
  • 为工作划分优先级,把时间花在重要的方面。
  • 不要让已有的代码支配将来的代码,如果不适用,所有的代码都可被替换。不要让你已经做完的事情约束下一步要做的事情,准备好进行重构。

算法速率

注重实效的程序员几乎每天都在使用:估计算法使用的资源、时间、处理器、内存等等。这些问题可以通过常识、某种分析、“big O” 近似算表示法来回答。

估算法是什么?

如果关系总是线性(时间的增长与N值成正比),就不存在讨论的意义。事实上,在实际中大多数重要的算法都不是线性,好消息是大多数算法都是亚线性。例如:二分查找。只要编写的程序中包含循环或递归的程序,我们就需要检查运行时间和内存需求。是为了更快速的确认我们在做的事情在各种情行下是有意义的。如果需要更详细的分析,可以用O()表示法。O()表示法是为处理近似计算的一种束下途径,并非使用于时间,可以用来表示任何资源。


转载:https://blog.csdn.net/qq_35097281/article/details/112852602
查看评论
* 以上用户言论只代表其个人观点,不代表本网站的观点或立场