写好一个项目不容易

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

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

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

我的问题和想法

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

究其原因,总结有2点:

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

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

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

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

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

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

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

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

关注点

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

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

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

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

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

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

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

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

欢迎扫描下方二维码,关注我的个人微信公众号,查看更多文章 ~

公众号:情情说

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

编辑于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏北京马哥教育

Linux云计算岗位面试时最常遇到的40个问题

1)使用云计算有哪些优点? 使用云计算有下列优点: a)备份数据和存储数据 b)强大的服务器功能 c)SaaS(软件即服务) d)信息技术沙盒功能 e)提高生产...

3787
来自专栏JAVA高级架构

阿里P8架构师深度概述分布式架构

作为一名架构师,我们要专业,要能看懂代码,及时光着臂膀去机房,也能独挡一面!及时同事搞不定问题,或者撂挑子,你也能给老大一个坚定的眼神:不怕,有我在!还能在会议...

2225
来自专栏DevOps时代的专栏

赵成:蘑菇街 DevOps 实践和转型之路

2364
来自专栏JAVA高级架构

阿里P8架构师深度概述分布式架构

作为一名架构师,我们要专业,要能看懂代码,及时光着臂膀去机房,也能独挡一面!及时同事搞不定问题,或者撂挑子,你也能给老大一个坚定的眼神:不怕,有我在!还能在会议...

1706
来自专栏微信小开发

起底小程序数据分析,每一个指标都不应该被忽视

你可能做了一个小程序,也做了很多推广。 然后查看了后台的一些数据: 有本地也有外地; 有男粉丝也有女粉丝; 有青年才俊,也有中年大叔; 有iPhone也有安卓;...

6349
来自专栏云计算与大数据

研发:安全的软件开发框架

随着软件研发经验的丰富,会逐渐将关注点从功能性需求转移到非功能性需求上。而安全又是软件生命周期的关键。特别是在云计算环境,涉及金融支付场景、区块链应用场景时。安...

1521
来自专栏IT技术精选文摘

规则引擎-BRMS在企业开发中的应用

1. 什么是规则 复杂企业级项目的开发以及其中随外部条件不断变化的业务规则(business logic),迫切需要分离商业决策者的商业决策逻辑和应用开发者的技...

9706
来自专栏云计算D1net

混合云的重要性及如何开始使用混合云

导语 混合云可以让您在本地运行您的基础设施,可以按租赁、配置和扩展要求获得一些云功能,然后在准备就绪后可以将应用程序迁移到公共云(也可能是私有云)。实际上,出于...

3297
来自专栏张善友的专栏

OpenSource 的 Free是自由 非免费

在Csdn上看到一篇新闻开源软件新模式:免费软件不免费 ,文中一直在描述这样的概念“免费”,而没有说明Free这个词的真正含义。 开源(OpenSource...

2005
来自专栏cloudskyme

跟我一起云计算(6)——openAPI

介绍 Open API即开放API,也称开放平台。 所谓的开放API(OpenAPI)是服务型网站常见的一种应用,网站的服务商将自己的网站服务封装成一系列API...

4854

扫码关注云+社区

领取腾讯云代金券