博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
写好一个项目不容易
阅读量:7172 次
发布时间:2019-06-29

本文共 1444 字,大约阅读时间需要 4 分钟。

  hot3.png

曾几何时,我多少次吐槽自己接触的项目,数落它们的种种不是,项目文件结构混乱、代码层次不清晰、严重的代码冗余、巨型代码块、缺少注释和日志、散落在各处的静态配置项、混乱的数据校验和异常捕获、脆弱的稳定性和扩展性,每一次功能升级和问题解决,都是胆战心惊的。

这些问题仅仅是后端开发阶段可能出现的问题,加上需求分析、功能确认、界面设计、架构设计、技术选型、测试等阶段,会有更多问题暴露出来,每个阶段都是相互递进、相互补充的,需要得到大部分同事的认同才可以往下执行,过程中,需要反复的沟通和讨论,团队成员要合理划分、有所成长,项目成本和进度也要合理的控制。

可见,对于一个大项目,写好多不容易。

我的问题和想法

我主要做Java后端开发,工作有5年了,遗憾的是没有写过令自己满意的代码,开始说的问题多多少少都会有,另外,对自己开发过程中使用的技术也不是特别深入,遇到一些特殊的问题时,也是无从下手。

究其原因,总结有2点:

  • 没想清楚「做完一个项目」或「解决一个问题」能够获得什么?
  • 浮于技术的表面,深度不够;

记得之前发过一个空间说说:“遇到一个问题时,如果能够嘴角上扬,那是很高境界了”,确实,当遇到问题时,特别是线上紧急问题,内心会有排斥和压迫感,一方面肚子里没水,没有相关的积累和经验,更重要的是心态不对,没想清楚问题解决之后,能够获得什么。

其实,做完一个项目,最直观的收获是:会使用一些技术了,但如果是已经会的而且很熟的技术呢,还能获得什么?更不用说到处copy代码了。

所以,不能仅仅关注功能实现了,对自己来说,实现的过程和质量才是最重要的,一步一步递进,稳步执行,不断总结,慢慢形成自己的方法论。

另外,面对问题,多想想自己从中获得的经验和积累,就不会有排斥心理了,而会很用心的完成它。

有方法、好心态是前提,很重要,想要很好的实现,就需要技术功力了,功力不够,在面对一些特殊的线上问题,或是考虑系统的可用性、性能、高访问量、扩展性时,就会很棘手。

所以,对于经常使用的技术要深入、专一,才能更好的实现系统功能,应对各种问题。

以上是我的现状和反思,希望自己能有所改进。

关注点

现在的我觉得数据结构和算法等基础很重要,虽然实际开发中很少用到,但对于理解JDK核心类库或框架等的实现和设计思路,有很大帮助,这恰恰又是我相对薄弱的地方,一定要慢慢补回来。

在处理高并发时,多线程、IO是基础、网络,多线程使你能够并行处理一个任务,IO使你能够在各个服务和组件中交互,网络是连接的基础,共同完成一个业务操作,掌握它们,对高并发的优化、相关框架的理解有很大帮助。

另外,清晰的项目文件结构和代码层次,统一的代码规范和版本控制,一致的数据校验和异常处理也很重要。

最后是考虑系统的可用性、高性能、易扩展、高吞吐量等,使用领域驱动的思想进行整体设计,深入了解常用的框架和组件,灵活运用各种设计模式。

团队协作和项目管理也很关键,它们是项目真正实施的有力保障,想转向管理的我,要多向身边的人学习。

以后的工作过程中,应多关注以上方面的积累,重视每一个需求点和问题,因为这是积累最好方法。

想到能够获得这么多,你还会排斥吗 ~

随着互联网的发展,项目会不断变大,要求会越来越苛刻,技术也会不断变化,写好一个项目更不容易,要明确自己的关注点,时刻学习和实践。

欢迎扫描下方二维码,关注我的个人微信公众号 ~

情情说

转载于:https://my.oschina.net/qqtalk/blog/1793039

你可能感兴趣的文章
Kafka~服务端几个常用的命令
查看>>
(第五天)数组
查看>>
软件工程 估计方法
查看>>
VS 20XX 使用技巧总结
查看>>
分享一下Java写的坦克大战游戏,相信很多人小时候玩过
查看>>
RSA密钥的跨平台通用
查看>>
ReactNative: 搭建ReactNative开发环境
查看>>
class_create(),device_create自动创建设备文件结点【转】
查看>>
shell 编程
查看>>
PLSQL的DBMS_GETLINE
查看>>
c语言编程风格
查看>>
ylbtech-LanguageSamples-OperatorOverLoading(运算符重载)
查看>>
Effective C++ (7) 强制类型转换
查看>>
三种主流的Web服务实现方案(REST+SOAP+XML-RPC)简述及比较
查看>>
分享WCF聊天程序--WCFChat
查看>>
NSubstitute完全手册(九)检查接收到的调用
查看>>
Druid:一个用于大数据实时处理的开源分布式系统
查看>>
网站制作中建议你必须特别注意的问题
查看>>
ASP.NET中TextBox控件设置ReadOnly="true"后台取不到值
查看>>
找出Java进程ID pid的N种方法
查看>>