`
情情说
  • 浏览: 37400 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

写好一个项目不容易

 
阅读更多

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

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

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

我的问题和想法

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

究其原因,总结有2点:

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

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

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

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

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

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

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

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

关注点

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

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

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

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

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

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

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

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

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

情情说

 

 

3
0
分享到:
评论

相关推荐

    项目实施——九阴真经

    2.2.1 第一个容易犯的错误:不清楚调研的的目的 8 2.2.2 第二个容易犯的错误:计划不够细致 9 2.3 调研准备阶段容易犯哪些错误?(中) 10 2.3.1 第三个容易犯的错误:计划没有在内部沟通 10 2.3.2 第四个容易犯的错误...

    JAVA上百实例源码以及开源项目源代码

     一个Java+ajax写的登录实例,附有JAVA源文件,JAVA新手朋友可以学习一下。 JAVA+JSP的聊天室 8个目标文件 简单 JavaScript万年历 显示出当前时间及年份,还可以选择年份及月份和日期 Java编写的HTML浏览器 一个...

    项目实施九阴真经《超越对手--软件项目经理的18种实用技能》

    2.2.1 第一个容易犯的错误:不清楚调研的的目的 9 2.2.2 第二个容易犯的错误:计划不够细致 10 2.3 调研准备阶段容易犯哪些错误?(中) 11 2.3.1 第三个容易犯的错误:计划没有在内部沟通 11 2.3.2 第四个容易犯的...

    java和SqlServer的Swing项目

    数据库已分离好,下载后往SqlServer附加我的数据库文件,还有在MyEclipse导入我的项目就就可以使用了(注意我的SqlServer的密码可能和你的不一样,你要根据自己的密码修改我项目里面JDBC的密码,是写在一个db....

    Camel写的应用程序框架

    Delphi让我们搭建一个程序变得容易,我希望通过我们的努力,让我们搭建一个项目更容易,利用我们可以想到的任何办法,不管是框架源代码、模版文档、代码生成工具甚至是我们手把手经验的交流,我们的目标就是让一个...

    超越对手--软件项目经理的18种实用技能

    2.2.1 第一个容易犯的错误:不清楚调研的的目的 8 2.2.2 第二个容易犯的错误:计划不够细致 9 2.3 调研准备阶段容易犯哪些错误?(中) 10 2.3.1 第三个容易犯的错误:计划没有在内部沟通 10 2.3.2 第四个容易犯的错误...

    JAVA上百实例源码以及开源项目

     一个Java+ajax写的登录实例,附有JAVA源文件,JAVA新手朋友可以学习一下。 JAVA+JSP的聊天室 8个目标文件 简单 JavaScript万年历 显示出当前时间及年份,还可以选择年份及月份和日期 Java编写的HTML浏览器 一个...

    WeChatImg-使用kotlin写一个仿微信点击图片浏览的效果.zip

    最近在学习kotlin,项目中正好用到了图片浏览,就用kotlin放照微信的做了一个,效果如下:大概就是这么个效果,图片从小到大的一个效果,然后滑动切换图片,点击后会返回对应图片的位置,其实比较容易,用到的是...

    如何写项目设计方案.pdf

    注意的是: ⽅案书的的书写格式⼀定要按照先项⽬后产品的⽅式来进⾏,千万不可把⽅案书内容排序的乱七⼋糟,⼀定要富有逻辑性,实⽤性,可靠 性,客户看完后,能通俗易懂,容易理解。描述要直观采⽤是图⽂并茂的...

    软件项目管理的九阴真经

    3.5 写好方案心得(上)(连载十九) 3.6 写好方案心得(下)(连载二十) 3.7 方案分类及用途(连载二十一) 4 如何做产品演示? 4.1 什么是演示?(连载二十二) 4.2 演示的目的 4.3 售前演示为什么效果不好?(上)(连载二十三)...

    基于PHP开发的邮件分发管理系统源码

    这是一个一直很想做的项目,需求就是发送邮件,以前在博客上发过各种编程语言如何发送邮件的代码,无一例外都需要配置各种参数,Python还好,有库可以直接用,但Java和PHP就得导入包,还可能出各种错,当好不容易...

    折叠效果展示,很好的效果的

    说句实话,这是一个简单得不能再简单的东西了,我也用Js实现功能(写死在每个页面),可我有十多个页面要用到这东西,就想着把它封装成插件,可我又从来没写过Js插件,项目要得很紧,也没时间去研究,所有就在百度上...

    毕业设计项目:基于最小错误率和Fisher线性分类器的QT&C++实现手写字符识别系统.zip

    用c++/qt写的项目,项目都经测试过,能跑通,请放心下载使用。 Qt的优势: 1.跨平台,几乎支持所有的平台 2.接口简单,容易上手,学习QT框架对学习其他框架有参考意义 3.一定程度上简化了内存回收机制 (特定场景...

    数据库课程设计——用qt和oracle写一个简单的教务管理系统.zip

    用c++/qt写的项目,项目都经测试过,能跑通,请放心下载使用。 Qt的优势: 1.跨平台,几乎支持所有的平台 2.接口简单,容易上手,学习QT框架对学习其他框架有参考意义 3.一定程度上简化了内存回收机制 (特定场景...

    毕设项目:基于C++和Qt实现的简易好看的日志系统.zip

    用c++/qt写的项目,项目都经测试过,能跑通,请放心下载使用。 Qt的优势: 1.跨平台,几乎支持所有的平台 2.接口简单,容易上手,学习QT框架对学习其他框架有参考意义 3.一定程度上简化了内存回收机制 (特定场景...

    SpringBoot2 仿B站高性能前端+后端项目完结16章

    小伙伴简历中不知道写什么项目的或者项目没有亮点的,我只能帮你们到这了! 随着技术框架的不断更新,一些公司摒弃了原先的技术框架模式。而springboot慢慢取代了原有的ssm框架开发。为什么选择springboot呢? 配置...

    pytugol:一个使用python创建的简单的portugol预编译器项目

    一个简单的项目,我称之为使用python语言创建的portugol 预编译器。 一种帮助有抱负的程序员和希望引导学生开始编程的教师的工具。 我正在开发这个是因为我对 Portugol IDE 的体验不是很好,这个工具很适合开始,...

    apache-ant-1.8.0RC1-bin

    Ant是apache软件基金会jakarta项目中的一个子项目,由于是基于java编写的,因此具有很好的跨平台性。Ant由一些内置任务(task)和可选择的任务组成(当然你还可以编写自己的任务),使用Make时,你需要写一个...

    uni-app项目本地离线android打包步骤

    uni-app很好,但按照官方的android离线打包指导并不容易很顺利完成离线打包 结合官方文档,经过反复试验、百度总算打包成功 为此特整理成word,按自己认为合适的方式把打包步骤写出来,文档中有大量截屏,免得文字...

Global site tag (gtag.js) - Google Analytics