最近好久没写博客,因为换工作原因,从传统企业转行到互联网行业,这次换工作成本很大!

  新公司,纯互联网广告公司,BI驱动,出来几日感觉成长空间很大,下面来些干货。

什么是程序、软件

  程序 = 数据结构 + 算法

  在Head First Python上有一段话,任何值得创建的程序必然会处理数据,有些时候,数据很简单也很直接,但有些情况下,所处理的数据不论从结构还是含义上都很复杂,这概念,都是在架构上也能适用,把微服务改造为数据部分和算法部分!

  软件 = 程序 + 文档

  这个其实比较纠结,通常好的程序可以使得文档变少,但文档和程序在同步上又是非常难的,怀疑下。

最“难”解的耦合

  高内聚、低耦合,贯穿整个软件工程,什么是最难解的耦合?其实是数据的耦合,微服务如果用同一个数据库,抱歉你的不是微服务,因为数据耦合在一起了,通常我们写程序的时候,都会应用SOLID原则、分层、分模块,设计架构的时候,会分布式,CQRS分离,都是围绕高内聚、低耦合;

  什么是最松的耦合?是消息,消息驱动,异步事件,明显在现在负责的高并发系统越发重要,也越热,这个时间点大家可曾开始学习Vert.x ?去了解一下吧。

什么是设计

  设计,就是把合适的东西,放到合适的地方,这句话看似简单,含义非凡,也是整个软件工程的本质所在,但难在如何定义合适?那需要你对计算机有所了解,对业务问题有所了解,对解空间和问题空间有所了解!所谓没有最好的技术,只有最合适的场景,学问非常之深;

  说下设计模式,完成通用功能,上帝类,贫血类,都可以完成,而设计模式又为何要比这些优秀呢?因为它是真的把实现的代码,划分开来,然后组织在一起,这种划分划分了什么?(在微服务设计里叫分区、在DDD里叫聚合根、Bound Context),划分后又该写些什么代码进去呢?设计模式给了你答案:在类似的业务场景中,把合适的代码,放在了合适的位置,这就是设计;

数据的分类

  数据的分类一般分为两类,一个是属于业务的数据,一个是属于程序的数据,尽量不要把这两种数据混起来用,这样会耦合;

  本人不会个人崇拜,但学到了东西,自然会有分辨能力的,对事!不对人!

最新文章

  1. SQL(横表和纵表)行列转换,PIVOT与UNPIVOT的区别和使用方法举例,合并列的例子
  2. Spring配置AOP实现定义切入点和织入增强
  3. 解压版Tomcat配置
  4. Entity Framework在WCF中序列化的问题
  5. SQL模式匹配
  6. Maven之 环境搭建
  7. scp,ssh双机互信操作步骤
  8. 很全的corel图像分类,场景识别图像库
  9. OS概论1
  10. winform设置DataGridView样式 (蓝色)
  11. Nginx Upload Module 上传模块
  12. c#中关于String、string,Object、object,Int32、int
  13. ACdream 1083 人民城管爱人民
  14. Floating IP in OpenStack Neutron
  15. ssh相关原理学习与常见错误总结
  16. php+MySql实现登录系统与输出浏览者信息功能
  17. SSH的软链接后门
  18. axios封装get方法和post方法
  19. python学习2:turtle的使用蟒蛇绘制的学习以及自己摸索的等边三角形绘制(跟随mooc学习)
  20. 基于pycaffe的网络训练和结果分析(mnist数据集)

热门文章

  1. Android的Databinding-数据、Map绑定
  2. ConditionalOnProperty
  3. Scala编程进阶
  4. 百度brpc 压测工具rpc_press解析
  5. python下的selenium和PhantomJS
  6. python 2 字典的基本使用
  7. 【PHP】PHP的安装和配置
  8. 分析轮子(四)- 我也玩一把 Serializable.java
  9. Nginx防压力测试
  10. 偏离中轴的cos半球积分问题