专栏首页方法论软件开发之道

软件开发之道

1.务必仔仔细细看清该技术的技术文档,切忌概览;

2.对于较难理解的,一定要多看,这个多看不仅仅指一遍遍的阅读技术文档或代码,而且也可以理解为不止某一天看,因为有些知识需要消化,当时看过之后未必能够消化掉,因为需要多看几次、多看几天,还有一个原因就是,在学习时有时会陷进去,而此时可以先放下,理清思绪,或者暂时先不理,等到有时间再处理;

3.对于某些难以理解的算法,借助画图来理解是一种有效的辅助方法;

4.对于未接触过的新技术或其他知识,不妨运用已有的知识进行类比处理,除此之外,可以多参考一些已有的书籍或博客,站在巨人的肩膀上有助于看的更远;

5.处理任何问题,尤其是写代码,务必使头脑保持清晰,不能稀里糊涂的处理,要从代码起始位置了解业务,对于含糊不清的地方,一定要想办法弄清楚,不然做的再多也是徒劳!

6.解决一个问题,应首先清楚要解决的问题是什么,先理解清楚产品需求,有需求文档看需求文档,没有的话找产品经理或其他制定需求的人,不能自己想当然,如果需求都理不清,就很有可能理解错产品需求,做出不符合需求的产品,最终浪费人力、物力、财力;

7.jar包版本不兼容往往引发一些令你抓狂的bug;

8.通过看官方文档来学习是一种非常行之有效的方法,官方文档将对项目背景、项目的实现方法做详细说明,非常容易理解。

9.自己搞不定的问题,可以和别人一起研究,即使你们都不会,但在研究的过程中或许就会有人能找出解决方法,也称为协作,自己强大固然好,但是真的解决不了了,和别人一起研究,说不定就解决了,这个方法称之为:协作;

10.做技术的还是要有钻研精神,要读源码,读源码读的多了,会潜移默化的提升你的编程能力与思维;

11.对于不易理解的概念,要坚信:书读百遍,其意自见

12.看懂和会实际操作还是有区别的,对于已看懂的知识,实际操作有助于强化理解,对于看不懂的知识,实际操作有助于理解;

13.对于某一项技术或者语言,应主动整理该技术的体系架构,一些技术书的章节目录就是一个很好的参考,但是不能迷信书本,应当根据自己的理解整理出自己的体系架构,例如:Java中的多线程在一些书本中可能只是一个章节,但是就多线程而言,单独写成一本书也不为过,因为涉及的内容太广泛了;

14.对于一个庞大的任务,最好不要一次性完成,要学会对任务进行分解,制定合理的计划,按计划一点一点的完成;

15.牛顿曾经说过:“如果说我看得远,那是因为我站在巨人的肩膀上”。学习技术也是这样,对于某一特定技术,一些大佬已经弄的很透彻了,会录制一些视频放网上,大部分讲的好的都是收费的,如果真的想学习,不要吝惜那点钱,因为,一些知名的大佬的课程是绝对物超所值的;

16.idea添加新的依赖时,如果仓库中已下载下来jar包,但工程里就是加载不到,一般是idea的缓存造成的,此时应选择pom.xml文件进行reimport,在左边maven选项卡reimport,然后重启idea;

17.使用freemarker时,如果请求不能返回页面,可以试着强刷一下页面。

18.开发要遵循低耦合原则,将一切以后可能会发生改变的数据、方法、类、服务等抽取出来,以便到时可以方便的进行修改,最简单的判断方法就是:假设现在要将该应用复制一份,仅仅改变数据表表名,是否可以很快完成复制?如果可以,则此应用的开发大致符合低耦合原则。

19.清空数据表(谨慎操作),再重新跑一遍应用,有时会发现一些数据存在时不能发现的bug;

20.应用都需要设计一个统一的请求结果返回类,该类应有以下四个基本属性:是否成功(success)、请求结果码(errorCode)、处理结果(message)、结果数据(data),也可参考微信官方文档;

21.在进行开发之前,应该先从宏观角度进行大致的规划,抽取具有通用性的方法、变量等,此外,如果是可能会变化的变量,一定要抽取出来,并且,能动态获取的变量,一定不可以硬编码在代码里;

22.在进行业务开发前,要先理清楚业务逻辑,可以用流程图画出来,或者用文字一条一条写出来,务必穷尽所有可能出现的情况。

23.涉及数字、比例的,一定要考虑到边界条件:0

欢迎补充!

本文分享自微信公众号 - 小诸葛的博客(haibojishu),作者:小诸葛

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2020-03-24

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 软件开发之道

    2.对于较难理解的,一定要多看,这个多看不仅仅指一遍遍的阅读技术文档或代码,而且也可以理解为不止某一天看,因为有些知识需要消化,当时看过之后未必能够消化掉,因为...

    小诸葛
  • 微信扫码登录网站实现案例(无需授权)

    最近因业务需要,需要给网站增加一个扫描公众号二维码登录网站的功能,通过扫码登录,一来用户登录网站不需再输入账号密码,提升了用户体验,二来也可以作为公...

    小诸葛
  • Spring Boot用户关注公众号获取用户openid案例

    在进行微信公众号开发中,有时我们需要获取粉丝的openid,以此完成一些业务的处理,例如:向指定用户推送模板消息,那么怎么获取用户的openid呢?...

    小诸葛
  • 软件开发之道

    2.对于较难理解的,一定要多看,这个多看不仅仅指一遍遍的阅读技术文档或代码,而且也可以理解为不止某一天看,因为有些知识需要消化,当时看过之后未必能够消化掉,因为...

    小诸葛
  • 如何查看集成Sentry后Hive作业的真实用户

    在CDH集群启用Sentry服务后,需要关闭Hive的启用模拟功能,hive.server2.enable.impersonation设为false,这会导致任...

    Fayson
  • 我们为什么需要去中心化身份

    本篇文章尝试回答两个问题。第一个问题是如何保证从企业或机构中的泄露数据中不会关联用户的身份信息。第二个问题是如何保障企业或机构在正常经营中能够拿到必要的身份数据...

    lambeta
  • 挖掘用户行为数据最佳武器——SDK

    越来越多的企业已开始挖掘用户行为数据的商业价值,利用行为数据进行精准有效的数字营销。以科技金融行业为例,某知名企业的数据表明:用户行为数据的效力是金融数据的4倍...

    BestSDK
  • 每天一算:Reverse Linked List II

    变换的是2,3,4这三个点,那么我们可以先取出2,用front指针指向2,然后当取出3的时候,我们把3加到2的前面,把front指针前移到3,依次类推,到4后停...

    五分钟学算法
  • 【案例】国美金控:让消费金融可视更可靠

    国内的零售产业将迎来新一轮爆发式的增长,在金融服务业开放政策和云计算、大数据技术双重推动下,消费金融领域的跨界融合正在成为一种趋势。在这种背景下,国美金控依托现...

    数据猿
  • 大数据狂想:你必须把握的未来七大趋势

    本文来自科幻作家陈楸帆(微博@陳楸帆)投稿,曾写过《丽江的鱼儿们》《鼠年》《无尽的告别》《G代表女神》《荒潮》等科幻作品,在本篇文章中分享了自己对于未来科技趋势...

    小莹莹

扫码关注云+社区

领取腾讯云代金券