专栏首页方法论记一次70后架构师的技术分享会

记一次70后架构师的技术分享会

上周六,公司请了一位架构师给我们研发的小伙伴做技术分享会,他分别从需求、系统设计、接口设计、代码开发、测试五个方面做了分享,听完他的分享,收获挺多的,下面将自己的收获总结如下,并对分享会内容做个简述,希望能对大家有所帮助。

他并非计算机专业出身,但真的是一位大佬,真的做到了将软件开发的全过程融会贯通,他曾将Windows的官方开发文档翻译成六百多页的A4纸,曾因要做一个财务结算模块而特地购买一本财务书籍通读并能背诵相关要点,他给我们分享了很多干货,但我记忆最深的是他说的一句话,他也以他亲身经历印证了这句话,

那就是:一辈子只做一件事一定是成功的。

个人总结:

1,代码走读对程序员的成长非常有效

2,熟悉IDE的每一个功能,因为IDE是你砍柴的刀

3,UML是一个利器,至少读一本经典的UML书籍

4,至少读一本经典的面向对象的书籍

5,一个方法应避免过长,60行最多了

6,Windows是一个很好的应用程序,无论是交互设计还是界面设计

7,数据表、类、前端数据应保持一致性

个人的感触最深的就是上面这几点,下面对分享会的内容做下简要概述。

一、需求

1,需求不能仅仅是简单的描述,必须想尽一切的可能性,特别是边界条件!

2,一定要穷究事物的关系(是一对一还是一对多?),这至关重要!

3,谁将使用这个系统,什么情景下使用,假设什么情况不支持,这些都需求的一部分。

二、系统设计

类设计

1,找名词、形容词,动词,动宾结构,这些将构成类、属性和方法;

2,一般地,类都有集合类,所有的Add,Edit, Delete等数据库操作方法都应是集合类的方法;

3,类的属性可以是集合类, Word的8层结构都通过集合类实现;

4,类就有2种,集合类及单个 对象类,所以代码模板完全可以实现80%的工作量

数据库设计

1,类—>表,属性 —>字段;

2,三个范式去检查,越规范越好写代码;

3,空间换时间,时间换时间来解决性能问题;

4,一般情况下不要写存储过程及触发器,逻辑和数据要各自独立;

5,要分类管理,要善于使用1对1的关系;

6,类的属性和字段的顺序要一致!

系统界面设计

在哪个操作系统上,就要符合这个操作系统的操作习惯和规范,对标这个操作系统以及一两个最大用户量的应用程序。

7大界面

1,登录界面;

2,主界面,以前叫MDI;

3,多个对象列表界面(单对象,两层对象);

4,单个对象对话框界面(单对象,两层对象;

5,选项界面;

6,向导式界面;

7,关于界面。

三、接口设计

接口的设计最好能遵循Restful Web API风格,接口可以抽象为3种。

1,集合接口:/users

2,单个对象接口:/users/{userID}

3,属性接口:/users/{userID}/password

四、代码开发

1,开发只是用高级语言把设计的内容翻译出来;

2,一个程序里80%的代码应该符合模板规范;

3,不要缩写,64位的机器,长点有啥不好!

4,变量一定要用名词和形容词(或过去分词),方法一定是动词或动宾结构;

5,方法的命名一定要涵盖整个方法里代码的实现;

6,业务逻辑的实施是层次地实现,而不是首尾连接实现;

7,要有洁癖,不要让后面的小屁孩总是用粗口问候你!

在高级语言里,不管多深奥的算法都可以认为是对象属性的变化集合!

五、测试

1,测试是为发现错误而执行程序的过程;

2,测试是最要求最高的岗位,要穷举一切边界条件证明程序是错的!

3,开发内部组织代码走读是初期最有效的测试方法。

六、总结

一致性是软件开发的最高境界!

面向对象是提高软件开发效率及质量的最佳途径!

做软件开发很简单,因为万物皆是对象!

做软件开发非常好,因为你可以凭着自己的努力快速超越别人!

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

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

原始发表时间:2019-11-27

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

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Java中类的静态代码块、构造代码块、构造方法、普通代码块

    Java中静态代码块、构造代码块、构造方法、普通代码块的执行顺序是一个比较常见的笔试题,合理利用其执行顺序也能方便实现项目中的某些功能需求 。

    小诸葛
  • java.util.Collection[源码解读(上)]

    本文主要介绍Collection接口的用途。接口的作用是什么呢?我的理解是四个字:制定标准。就像USB接口,尺寸、结构、排线都是统一的,只要是标准USB设备,都...

    小诸葛
  • eclipse如何导入、运行Java SE项目

    在上篇文章介绍了eclipse如何导入、运行Java web项目,本篇文章介绍如何导入、运行Java SE项目,导入Java SE项目比较简单,不像web项目那...

    小诸葛
  • 高效编程所需要做的那点事

    聊聊如果才能高效编程 计划(Plan) 所谓Plan,其实就是对应于编程中的设计阶段,当然,这里的Plan并不像设计那样重量级。它要求我们程序员在正式...

    码神联盟
  • 有哪些新手程序员不知道的小技巧?

    2. 不要写代码前过度计划,在一头钻进代码前做点计划是好事,但是即便是好事,也可能物极必反。喝太多的水都会使你中毒呢;

    lyb-geek
  • 记录|探究一次嗅到坏代码后封装再封装

    项目经历了一个又一个,代码撸了一遍又一遍,来来回回拷贝旧东西,似乎丝毫提不起兴趣。

    HLQ_Struggle
  • Java 基础 | Collection 集合概览

    老读者都知道,我是自学转行到 java 的。那时迫于生存压力,学得比较快,很多知识点仅停留在会用的层面。最近,光会用不知道原理,没什么意思。每次使用时都是机械性...

    一个优秀的废人
  • 别死写代码,这 25 条比涨工资都重要

    如果每个程序开发人员都只是周而复始地写代码,想必编程的工作就会让很多程序员发狂。那么如何在枯燥的工作中寻找乐趣,我认为我们要对工作保持激情和兴奋感、始终学习的态...

    用户1516716
  • 别死写代码,这25条比涨工资都重要

    如果每个程序开发人员都只是周而复始地写代码,想必编程的工作就会让很多程序员发狂。那么如何在枯燥的工作中寻找乐趣,我认为我们要对工作保持激情和兴奋感...

    JAVA葵花宝典
  • 自动化代码发布系统实现

    日常运维问题 在我日常运维工作中,代码发布可能是最普遍的一项工作之一,尤其是网页代码的更新,碎片化发布需求非常频繁。在前期开发人员比较少时,还可以由自己 来上服...

    小小科

扫码关注云+社区

领取腾讯云代金券