- 浏览: 9695 次
- 性别:
- 来自: 杭州
-
最新评论
说到系统的架构,初学者可能没有意识到,对于已经从事多年的开发的朋友可能会知道,一个系统的运作是否正常,是否能够高效的运作关键在于系统的架构,因为一个系统只有一个好的架构才能支持更多的用户,更多的应用接入到系统中。下面新霸哥将和大家分享一些关于系统架构方面的一些问题。
很多的程序员可能会有这样的一个想法那就是,能够完成编程任务,不管程序是怎么实现的,程序的内存运行情况,程序的内部是怎么运行的,可能很多的朋友都不会关心。这也是现在很多的程序员面临的一个非常严重的问题,最为一个合格的程序员不仅要快速完成编程任务还要保证代码的质量,所谓的质量就是程序的内部运行情况,包括程序在运行的时候内存的分配情况,程序的性能问题是最为关键的一个问题。
说到这里新霸哥来说一个真实的事情,新霸哥的一个朋友能够在一台配置很低的电脑上快速的跑出一个数据量是千万级的一个存储过程,这是什么概念,可能,可见程序的运行不要依赖系统的硬件资源,你要知道,我们的所做的工作就是要在用最少的资源来实现最大的价值,这才是我们这些程序员所要努力做的事情,其实,要做到这样的水平,并不是那么难的,只要你肯努力就能达到这样的水平的,当然这样的路还很长的。
数据分离
一个好的系统是需要做的不依赖数据,为了考虑后期的数据迁移或者更换数据库这样的操作,程序员要有这样的意识,在写代码的时候要注意和数据操作的这部分要分离开来,如果有数据库变更可以直接的修改数据操作这部分,这样就能达到改动小,减少了重复工作的可能性。当然要做到数据分离还不是一个简单的事情,需要做的事情真的很多的。一般数据的操作都是在DAO这层,对于操作SQL这部分,新霸哥一般都是建议不要把SQL写在程序中,这样如果后期sql有改动是不是要改动项目,重新编译,如果你是把SQL写在配置文件中,只需要改一个配置文件就好了,是不是很简单,程序员在写任何一个和数据库操作的时候都应该考虑这个问题的,因为只有你在不断的思考,才有进步的。
低耦合
现在的系统功能都很复杂的,如果在系统架构的时候不考虑耦合这个问题,后面的会有很多的问题的,因为你的一个简单的操作,看似很简单的,但是你会发现这个和系统的其他部分是有联系的,系统的正常运作是没有问题的,考虑到系统的后期扩展就很难了,开始设计的时候没有考虑这个问题,后面在做就要重新开始了,试想一下作为一个大型的软件,如果遇到这样的问题可能是毁灭性的打击。
高性能
代码的好坏不是简单的看你写了多少,而是代码在不同的环境中,是否能够正常的运行,对系统的物理资源是否有依赖性。有句话说的好,好的代码不是写出来的,是改出来的,说的非常好,其实只要你仔细观察你会发现你的大部分时间都是在系统的调试上,功能的实现其实不是那么的难,合格的程序员都知道,高性能是他们的追求的目标。
高移植
一个大型的应用系统可能在不同的环境中都有发布,如果才能做到这样的功能,其实很简单,就是在开发系统前,系统架构这部分要考虑的问题。程序员应该有这样的意识无论是大型项目还是小型的项目都应该用更高的要求来对待任何一个软件项目,这样你会发现后期的工作会很轻松的。
作为一个程序员不能永远都停留在写代码这个层次上,而是要对自己要求严格一点,开发任何一个系统都要考虑系统的高可用性,用高并发,严格要求自己,你会发现自己在2017年有更多的收获。如果你在学习的过程中遇到问题欢迎和新霸哥交流。
很多的程序员可能会有这样的一个想法那就是,能够完成编程任务,不管程序是怎么实现的,程序的内存运行情况,程序的内部是怎么运行的,可能很多的朋友都不会关心。这也是现在很多的程序员面临的一个非常严重的问题,最为一个合格的程序员不仅要快速完成编程任务还要保证代码的质量,所谓的质量就是程序的内部运行情况,包括程序在运行的时候内存的分配情况,程序的性能问题是最为关键的一个问题。
说到这里新霸哥来说一个真实的事情,新霸哥的一个朋友能够在一台配置很低的电脑上快速的跑出一个数据量是千万级的一个存储过程,这是什么概念,可能,可见程序的运行不要依赖系统的硬件资源,你要知道,我们的所做的工作就是要在用最少的资源来实现最大的价值,这才是我们这些程序员所要努力做的事情,其实,要做到这样的水平,并不是那么难的,只要你肯努力就能达到这样的水平的,当然这样的路还很长的。
数据分离
一个好的系统是需要做的不依赖数据,为了考虑后期的数据迁移或者更换数据库这样的操作,程序员要有这样的意识,在写代码的时候要注意和数据操作的这部分要分离开来,如果有数据库变更可以直接的修改数据操作这部分,这样就能达到改动小,减少了重复工作的可能性。当然要做到数据分离还不是一个简单的事情,需要做的事情真的很多的。一般数据的操作都是在DAO这层,对于操作SQL这部分,新霸哥一般都是建议不要把SQL写在程序中,这样如果后期sql有改动是不是要改动项目,重新编译,如果你是把SQL写在配置文件中,只需要改一个配置文件就好了,是不是很简单,程序员在写任何一个和数据库操作的时候都应该考虑这个问题的,因为只有你在不断的思考,才有进步的。
低耦合
现在的系统功能都很复杂的,如果在系统架构的时候不考虑耦合这个问题,后面的会有很多的问题的,因为你的一个简单的操作,看似很简单的,但是你会发现这个和系统的其他部分是有联系的,系统的正常运作是没有问题的,考虑到系统的后期扩展就很难了,开始设计的时候没有考虑这个问题,后面在做就要重新开始了,试想一下作为一个大型的软件,如果遇到这样的问题可能是毁灭性的打击。
高性能
代码的好坏不是简单的看你写了多少,而是代码在不同的环境中,是否能够正常的运行,对系统的物理资源是否有依赖性。有句话说的好,好的代码不是写出来的,是改出来的,说的非常好,其实只要你仔细观察你会发现你的大部分时间都是在系统的调试上,功能的实现其实不是那么的难,合格的程序员都知道,高性能是他们的追求的目标。
高移植
一个大型的应用系统可能在不同的环境中都有发布,如果才能做到这样的功能,其实很简单,就是在开发系统前,系统架构这部分要考虑的问题。程序员应该有这样的意识无论是大型项目还是小型的项目都应该用更高的要求来对待任何一个软件项目,这样你会发现后期的工作会很轻松的。
作为一个程序员不能永远都停留在写代码这个层次上,而是要对自己要求严格一点,开发任何一个系统都要考虑系统的高可用性,用高并发,严格要求自己,你会发现自己在2017年有更多的收获。如果你在学习的过程中遇到问题欢迎和新霸哥交流。
发表评论
-
后端架构师的知识体系之一基础组件
2018-11-21 22:31 270作为一个程序员,长 ... -
2016年末程序员突破自我的绝密方法分享
2016-11-07 07:43 344新霸哥一直致力于了软件开发行业,从事软件开发快五年了,时间 ... -
2016程序员自学能力的培养方法有哪些?
2016-10-25 21:28 350近期新霸哥发现有 ... -
2016杭州云栖大会新亮点在这里
2016-10-17 07:27 334云栖大会已经圆满落幕,新霸哥近期一直在关注大会的一些情况, ... -
2016年学哪个编程语言最有前途?
2016-10-10 07:22 536说起哪个编程语言 ... -
准备加入软件开发行业的朋友可以看看
2016-09-26 07:33 297最近新霸哥注意到有一些的朋友想加入到IT行业中,因为现在这 ... -
为什么现在UML很少用了
2016-09-19 07:37 349新霸哥发现UML在面 ... -
软件开发中oracle查询常用方法总结
2016-09-12 07:37 274上次新霸哥和大家讲解了一些关于oracle的知识发现大家对 ... -
新霸哥带你轻松玩转Oracle数据库
2016-09-06 23:28 425接触过软件开发的 ... -
敏捷开发是一个什么样的开发模式
2016-08-29 07:39 282在信息技术高速发 ... -
这些云计算技术你了解过哪几种
2016-08-15 07:40 356新霸哥发现目前信息量高速增长的今天,IT行业正在面临着空间 ... -
Java与云计算有什么关系呢
2016-08-08 07:37 512在如今这个信息技术高速发展的今天,云计算已经不是一个陌生的 ... -
新霸哥带你进入java的世界
2016-08-01 07:46 321新霸哥从近期大家的留言中注意到了大家对基础知识比较重视,很 ... -
分布式数据库hbase详解
2016-07-25 07:47 369新霸哥注意到了在人类随着计算机技术的发展,数据的存储量发生 ... -
SQL和NOSQL有区别吗?
2016-07-18 07:44 424在大数据高速发展的今天,数据量在不断的增加,传统的数据库可 ... -
怎么充分利用大数据寻找商机?
2016-07-11 07:33 644在大数据时代,数据量日益增加,所以展现在我们面前的就有两个 ... -
mapreduce编程模型你知道多少?
2016-07-04 07:40 327上次新霸哥给大家介绍了一些hadoop的相关知识,发现大家 ... -
hadoop是什么?
2016-06-27 23:23 292在如今这个信息高 ... -
程序员入门有年龄限制吗?
2016-06-19 23:06 860年轻的我们很幸运 ... -
云计算的发展路径和落地形态分别有几种?
2016-06-12 22:26 684说到云计算可能很 ...
相关推荐
+ 系统采用分布式服务架构(SOA),在分布式架构基础之上实现了面向服务的思想,使用 Dubbox 作为服务中间件,zookeeper 作为 Dubbox 注册服务中心。 + 工作职责及技术描述: - 负责项目中门户系统、购物车系统...
在标题中提到的版本v2016.11,是该软件的一个特定发行版,发布于2016年11月,可能包含当时的最新特性和修复。 NUC970、N9H30和NUC980是基于ARM架构的微处理器,常用于嵌入式设备,如工业控制、物联网(IoT)设备和...
这本书由Addison-Wesley出版,属于Microsoft技术系列丛书,旨在为开发者、IT专业人员、管理人员以及架构师提供有关最新Microsoft技术的知识。该系列图书覆盖的话题从编程语言到服务器技术,再到高级开发技巧,范围...
【软件开发工程师简历模板】是一个专门为毕业生和有经验的程序员设计的简历模板,旨在帮助他们更高效地撰写简历,以提升面试机会。该模板适用于各种编程语言领域,并且提供了真实项目案例,以便求职者根据自身经历...
2. **版本4.4.2**: 这个特定版本发布于2016年,是Node.js的长期支持(LTS)版本。LTS版本意味着它们会得到更长时间的安全更新和支持,适合生产环境使用。4.4.x系列在稳定性、性能和兼容性上都有所提升,是许多项目...
YOLO(You Only Look Once)是一个实时目标检测系统,由Joseph Redmon等人在2016年提出,而yolov5是其最新版本,它在速度和精度上都有显著提升,非常适合实时应用和图像识别任务。 首先,我们要理解yolov5的工作...
YOLO(You Only Look Once)是一种高效的实时目标检测算法,自2016年首次发布以来,经过多次迭代,如YOLOv3、YOLOv4,现在到了YOLOv9,它在计算机视觉领域有着广泛的应用。本教程旨在为初学者提供Python和YOLOv9的...