Algorithm
本周算法题:1. 两数之和
题解思路:我在刚接触到这道题目的时候,又陷入了一种错误的思路中:把数组先进行排序... 这是多么错误的思路,出现这样的低级错误应该归根于我的算法基础薄弱,以及逻辑思维不够发散,往往会局限于一种解法中。缺少举一反三的能力,今后还是要多看书,写作,多多编写算法题以及进行思考。从各种不同的方面去思考。回归正题,于是我花费了半个小时的时间,在错误的思路中解题,结果,意料之中的没有解决。在上周的做题经历中吸取的教训,我重新转换了思路。于是,发现了新的解题思路,但也是最最最普通的题解思路:双重循环遍历。细节在这里,我就不进行概述了,大家应该都明白。在二刷的时候,我会回来的!!!
Review
How to write a good software design doc
这篇文章讲诉如何去编写一篇软件设计文档,文章内容分为了四个部分:
1.为什么要编写设计文档
2.设计文档中需要包含什么
3.怎么样去编写一篇设计文档
4.设计文档的总体流程是什么
一篇好的设计文档决定了一个项目的开头的好坏,如果在项目初期,对于项目的准备工作以及其相关的文档十分重视,那么这个项目在起点,就已经超过很多项目了,设计文档也是其中的一部分,它避免了开发人员去做一些错误的解决方案,大多数错误的解决方案在考虑设计项目架构的时候都可以被避免。然而一些公司不重视项目初期的构建 ,在项目后期,将会承受高返工率带来的巨大损失!制作软件产品也是一门手艺活,它需要开发团队去精雕细琢,而不是像快餐式的开发模式去对待,对自己开发产品付出的努力终将得到相对应的回报!
Tip
编码小贴士:信息隐藏。今天在《代码大全2》中阅读到这一部分,在这里简述我的思路:信息隐藏在程序设计中拥有至关重要的位置,它是作为面向对象设计原则的根基,例如,我现在所学习的Java语言中的一大特性——封装,就是这一原则的体现。信息隐藏可以降低类与类之间的耦合度,类把复杂的实现细节隐藏在类的内部,调用类无须知道其实现原理,当服务类修改内部的实现细节,其调用者将毫无察觉。信息隐藏可以将多变系统部分,固定在区域性的范围内,降低需求的变化对系统造成的影响。信息隐藏可以提高程序的伸缩性,将对应变化的部分隐藏至一个类或多个协作类中,如系统的硬件支持变化,只需更改对应类中的实现,实现改动量最小化,灵活性最大化!
Share
腾讯云入门中心
腾讯云入门中心里面有许多免费的教程,比如,如何搭建LAMP环境,Nginx环境等等,一些开发常用的环境。里面的教程相对于搜索引擎上个人编写的教程来说,还是比较清楚的。步骤详细,照着步骤去搭建,一般是不会出问题的。我个人之前搭建环境的时候,都是使用搜索引擎进行搜索,对各个搜索结果进行尝试,其中不乏有搭建失败,步骤模糊或者部署环境配置错误,因此花费了许多时间排错,这是非常可惜的。所以,在这里分享一下我现阶段的思路:首先,登陆对应的官网查找搭建文档,官网上都有对应的文档说明,但是诸如后端的主流开源框架,大部分都是英文的搭建文档,少部分提供中文(英文基础较差的同学要加紧了,包括我自己),照着官网文档搭建百分之九十九都会成功的。其次,就是登陆以上推荐的网站,查看是否有对应的教程。最后,如果以上两种都不管用的话,那就启动面向搜索引擎的模式吧!