Giter Club home page Giter Club logo

java_alg's Introduction

这个repository是存放我写过的java算法。
所有算法都来自《算法》第四版与其网站。

也会在这里写写心得体会什么的。


#2016-01-03
又有十天没在这里提交过代码了,我都不知道我为什么会这样子。
这本书用了四十年的时候编写,四十年,那你为什么不认真一点,把所有的习题都做一次?
那么急干嘛?


#2016-01-11

新的一年,从查找开始。

note 2016.01.19

一个很烂的项目,发现以下问题:

1. 一半的bean用spring管理,另一半的bean自己new或者用单例模式,spring的包扫描配错了,但两年时间一直没人改过来

2.到处都是静态类、静态方法,没法扩展

3.在低基数、低频率的搜索上写优化算法,算法和业务逻辑搅在一起,没有分开为2个层面

4.业务配置文件过于复杂,过度设计,居然是事件模式解析

5.自己写了个Dao,自己手动管理事务,到处拼sql,六七十个字段的表,每个操作都重复拼

6.4000行的大jsp、大类、800行的大方法、多达17个参数的方法,喜欢写万能函数

7.不写注释、不写文档

8.log4j和logbak混用,各占一半

9.混杂的代码风格,花括号行尾、换行都有,缩进用tab、2空格、4空格、8空格,紧凑风格和松散风格都有

10.一些作者喜欢用反射调代码,没办法用ide跟踪

11.很多作者不用开源工具包,喜欢自己搞一套,有炫技嫌疑,实际上搞得很烂

12.分包分得一团糟,既想按照功能分,又想按照业务分,没有把握好,稀里糊涂的

13.方法、变量命名词不达意,经常在getXXX、isXXX的方法里改传入参数,但又反回值,从命名就能看出作者词汇量狭窄、思维局限

14.对spring、spring mvc了解和利用严重不够,框架支持得很好的功能,非要自己写

15.pom依赖关系一团糟,各种重复引包、重复依赖,httpclient竟然多达4个版本

16.大片的被注掉的代码留在项目里,到处都是,许多废弃的类和废弃的配置文件没有删掉

17.每个作者都喜欢自己搞一套,缺乏共识,各自为战,各种约定、各玩各的

18.该打日志的地方没有打,导致一些工单成了无头案,有些地方,又重复打日志,啰里啰嗦

19.到处都是HashMap,而不用java bean;1个HttpServletRequest调了五六层方法;自己手工拼json字符串;拼email的html body,不用模板

20.页面还是jsp,jsp里写了大量的业务逻辑,甚至通过httpclient去抓别的项目,抓回来内容嵌在当前页面里

21.到处都是main方法,不用单元测试

22.代码重复度很高,一段逻辑,到处复制粘贴

23.数据库表设计很烂,导致不好查(比如用逗号分隔的串),较老得表甚至毫无注释(生产环境)

24.整个团队都没有代码质量追求,习惯了烂代码

这个项目,是该公司交易系统的核心,每周大概4次发布,迭代速度很高。

往里面加逻辑异常困难、很容易出问题,开发和QA都心力交瘁,新逻辑都是hack进去的,会加重代码腐烂。

若要重构,可能要同时维护2个版本,而且重构风险很大,一旦出事,将影响TL的前途。

如何摆脱这个困境?

#2016-01-28
股票继续大跌,再次经历去年七月份时的恐慌.只是这次,我手上已经没有能逆转的牌可打了.
好像霸王项羽.时不利兮骓不逝,虞兮虞兮奈若何?
于是我想收回借给朋友的钱,虽然不多,但是还能最后一战.


#2016-02-18
I am so afraid that my nose keep bleeding. So quit smoking, OK?
I am serious this time, no more cigarrates.

java_alg's People

Contributors

alexlueng avatar

Watchers

James Cloos avatar  avatar

java_alg's Issues

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.