Java后端程序员1年工作经验总结
Filter 过滤器 在请求接口处理业务之前改变requset,在业务处理之后响应用户之前改变response。如果某些数据不加密,很容易用抓包工具加filter作弊。 熟练掌握几种常见的mvn项目结构,mvn可以自动生成,这里不再详述。 1.版本号尽量几种在一个文件中便于管理。 2.spring milestone包解决spring包冲突问题。 3.mvn?dependency:tree命令分析所有包依赖,对于冲突的在pom文件中 1.git、svn等 2.代码冲突解决方案 3.分支管理。 对于某个稳定版本上线后,如果在此基础上开发新功能,一定要新建分支,在新分支上提交代码,最后在新版发布时合并分支。修改运营环境bug切换到主分支进行修改 post、get、put、head、delete、copy、move、connect、link、patch,最常用的是前4、5个。 常用的请求头有Accept(下载文件会特殊使用)、Accept-Charset(设置utf-8字符集)、Content-Type(json等配置)等 常用的响应头有Content-Type、Content-Type、Content-Length等,偏前端,不再详述。 接触的不是特别多,目前用到的只是服务器主从备份。Nginx反向代理进行配置。 多个项目nginx配置 Spring Mvc 用json数据进行交互,配置json转换的servlet。 封装返回值 自定义RunEnvironmentException(状态码,原因),覆盖原有Exception,切面ExceptionHandler抓取Exception并封装到返回值中(前后端松耦合) ? 令人头疼的用户重复(连续快速点击)提交问题,前端限制治标不治本;后端用sessonid在切面上实现,又需要前端存储,对所有请求数据加sessionId。最后用jedis中存储,用接口名+用户名当做key,根据不同的接口对不同的key可以单独设置时间,不仅保证了重复提交问题,也避免了恶意请求问题,同时还能自定义请求间隔。(期初担心redis缓存读写时间延误导致限制失效,后来发现多虑了,对一般的小系统来说,经性能测试,发现即使请求频率再提高100被也不会导致限制失效) testNg单元测试、性能测试,覆盖测试。 切面管理日期、权限。缓存等。 1.Redis的java库Jedis。 Jedispool配置。 项目中用到的有任务队列、缓存。 ? 2. neo4j图数据库 处理社交、推荐 linux操作系统熟悉以centos为例: 常用简单命令:ssh、vim、scp、ps、gerp、sed、awk、cat、tail,df、top,shell、chmod、sh、tar、find、wc、ln、| ? 目录结构明细:/etc/、~/、/usr/、/dev/、/home/、/etc/init.d/ 服务端:jdk、tomcat、nginx、mysql、jedis、neo4j启动与配置(特别说明的是该死的防火墙,nginx启动后一直访问不了,查找一下午查不到原因,最后发现是防火墙问题) 监控服务器状态(cpu,磁盘,内存),定位pid,日志查看 nginx负载均衡、反向代理、配置 自动化部署脚本 简单shell脚本书写,避免大量人力劳动。 监控系统,代码抛fatal异常自动发邮件,系统指标持续偏高自动发邮件。
微信支付坑比较多,用将近两周时间才把微信支付所有完成。需要在微信后台配置的地方太多。 而支付宝支付模块只用了2天时间就搞定了。 为用户定义tag、定义alias,注意当数据更新时需要同步更新tag、更新alias。如果没采用异步实现(用户体验就是好卡啊) 大量文件上传云端(七牛云),注意创建bucket 很简单的第三方接口,引入依赖,直接调用即可。需要在第三方后台设置模板等,注意限定用户访问次数。 很简单小功能,工具类。 时间有限,目前先写这么多技术栈。对于代码书写和、算法技巧问题,会抽时间写在(2)中。
(编辑:晋中站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |