深思熟虑地编程
好处:如果想减少后期维护代码的繁琐,修改Bug的苦恼,则需要深思熟虑地编程,在项目初期对功能的每一个要点做出功能合理性和场景多样性的判断。
要达到深思熟虑地编程,可参考以下几点:
1.时刻清楚你在做什么,不要做一只温水里的青蛙;
2.不要投机取巧地编程,依靠可靠的事物,不要依靠巧合和假定,如果你不能说出各种特定情形地区别,就假定是最坏的;
3.不要盲目地编程,试图构建你不完全理解的应用,或使用你不熟悉的技术,就是在希望自己被巧合误导;
4.为你的任务划分优先级,按照计划行事,先做重要的事情,即使它可能是最难的;
5.不要猜测,要实际尝试它,要学会断言式编程测试你的程序;为你的假定建立文档,按合约编程有助于澄清你头脑中的假定,并且有利于把它们传达给别人;
6.如果下次遇到有一些功能能工作,而你却不知道为什么,要确定它不是巧合。
在提问之前,请尝试阅读源代码以找到答案; 别动辄声称找到bug。
足够广博的背景和经验基础,让你能够在特定情况下选择好的解决方案。你的背景来源于对计算机科学的基本原理的理解,而你的经验来自广泛的实际项目,理论和实践的结合使你强大起来。
UNIX哲学:
每次只做一件事
年末计划 —— 离年末还有52天
基础:
集合类、NIO、JVM、并发编程网 - 每天一个内容 >> Java编程思想、Effective Java、Java并发编程实践、深入理解JVM
互联网相关知识:
mysql、redis、spring cloud/boot、tomcat、rpc、netty >> 大型分布式网站架构-设计与实践 重点:· mysql、dubbo、tomcat、spring、netty、rpc、zookeeper、bolt
编程思想:
设计模式之禅、
不能用没有习惯代替坏习惯,而是以新习惯代替老习惯,要比干脆戒掉老习惯好得多
/**************************************************************************************************/
技术目标 开始时间 结束时间 期望掌握程度
1.深入浅出MyBatis技术原理与实战 2019年10月20日 精通
2.XXL项目集成
3.<<深度学习各种开源方案>> 学习流程: Starting ==> 初级demo ==> 项目中的应用 ==> 高级特性 ==> 源码解读 ==> Finished
① spring-boot-demo; ② book; ③ 找有关项目https://github.com/toutiaoio/awesome-architecture。
可以仿照这种学习方式: https://github.com/zhisheng17/flink-learning
职位描述:阿里巴巴
1)业务需求的理解和分析;
2)根据业务需求进行系统模块的划分与抽象;
3)负责系统模块的设计、编码和单元测试;
4)技术文档的编写;
岗位要求:
1、3年以上工作经验;
2、具有扎实的Java编程基础,理解IO、多线程、集合等基础框架,对JVM的原理有一定的了解;
3、精通Java及Web应用的开发,深入了解spring,ibatis,cache,rpc,jvm等机制与代码;
4、熟悉分布式系统的设计和应用,熟悉分布式、缓存、消息等机制,能对分布式常用技术进行合理应用,解决问题;
3、掌握多线程及高性能的设计与编码及性能调优,有高并发应用开发经验;
4、熟悉TCP/IP、HTTP协议相关知识;
5、熟练使用Linux系统的常用命令及shell有一定了解,熟悉Unix/Linux环境和系统编程,深入掌握服务器编程模型;
6、熟悉MySQL数据库及主流NoSQL数据库,熟练使用SQL,能够进行基本的sql优化,熟悉MySQL;
7、熟悉Tomcat/JBoss的基本配置与web应用的部署;
8、对技术有热情,勤奋、乐于学习,善于学习,对业界技术保持敏锐触觉,如:mongodb,lua,node.js;
9、具有高度的责任心与自驱力,良好的沟通协作、较强的分析、解决问题能力,应急响应与处理问题的能力;
10、大数据量处理与实时计算,Spack、Flink等。
目标 : 快速实现
1. rpc 地址:https://mp.weixin.qq.com/s/rPRTEqJWv59Iba9kHrcgRQ 2.1 - 2.2
2. 分布式缓存、存储 2.3 - 2.4
3. 分布式消息 2.5 - 2.6
一周7天:
周一 周二 周三 周四 周五 周六 周日
Kafka Netty Mybatis shiro NoSQL Spark 补充
1)Kafka-streams-example(流式语法) ==> 书 ==》 源码解读 (业务方面的项目 公司看 gpmall、py、)
2)Netty IM 即时通讯(protobuf) https://juejin.im/post/5c97ae12e51d45580b681b0b#heading-4
all:
监控:
actuator、 admin
日志:
logback
ORM:
mybatis-plus
文件上传:
upload
缓存:
redis
定时器:
quartz
权限、认证管理 :Cloud-Admin
security、shiro
Zookeeper
消息队列:
kafka
websocket、socket.io
搜索:
ElasticSearch
MongoDB
限流:
2019.11.13
Mybatis 在秒杀项目中的使用