
程序员大军鱼龙混杂,水平的高低没法简单的从一个功能完成状况来评定,一样一个需求,功能均可以完成,可是不一样程序员完成质量会不同,完成质量的好坏须要从多方面评定,能够参考这些条件:易维护,易拓展,高可用,高稳定,高性能,安全性,容错,风控php
洞察身边的程序猿,能够归类出这几种类型:前端
- 理论型,理论能力很强,对前沿技术略有了解,性格比较强势,需求分析和方案设计头头是道,对本身的设计的内容比较自信执拗,反观代码,质量差的一匹,逻辑乱,难维护难拓展,可是每每这种在公司评级还都挺高
- 潜力型,业务能力强,开发设计和问题排查思路清晰,能够提出优化/改进方案,能对业务适当抽象,自我技术要求比较高,代码质量好,平时会调研前沿技术
- 表面型,业务需求基本均可以完成,可是代码质量比较差,bug多,问题排查效率低,难维护难拓展,不多了解前沿技术,空闲时间就刷刷微博,看新闻,聊天
- 老实型,作事勤勤恳恳,代码质量通常,平时表现比较不起眼,与同事沟通少,业余时间也不清楚具体在作什么
- 大神型,总结就是各方面都很NB,问啥都能给予建议或者解决方案,可是这种人不多
服务端开发工程师应该具备哪些能力?java
身处互联网公司的后端开发,因此用一个后端开发者角度出发node
-
基础能力 python
- 代码规范
- 分层清晰
- 逻辑清晰
- 数据库操做
- 了解http,能抓包工具和模拟请求工具
- 了解前端/js,能使用浏览器控制台工具调试
- 安全预防
- sql 注入
- xss 跨站脚本***
- csrf 跨站请求伪造
- http 劫持
- ddos ***
- ... ...
- 高级能力
- 面向抽象编程
- 适当使用设计模式
- 模块封装
- 异步编程
- 多线程编程
- 经验
- 高并发处理/优化
- 性能优化(加载速度、提升接口tps 、... ...
- 解析需求,能给予合理的建议和解决方案
- 能灵活使用缓存:redis,memcache 等
- 能灵活使用消息队列中间件:rabbitmq,activemq,zeromq,kafka,等
- 辅助能力
- 爬虫
- ***别人业务(适可而止,自行把握)
- 手段
- 模拟请求,寻找突破口,如:修改参数
- 并发请求,致使并发逻辑问题。如:得到多签到积分(多数据操做接口可能会压垮服务器)
- 尝试***,sql注入,跨站脚本***,等 ...
- ...
- 懂得***别人,本身就知道如何防护
- 沟通能力
- 成员沟通,讨论设计方案,分享思路,技术点
- 协做沟通,主动性很重要
- 排错能力
- 问题反馈快速响应
- 根据问题现象快速定位问题
- 快速给出解决方案并上线,告知客服,反馈给用户
- 学习能力
- 调研前沿技术而且最好是能够运用到项目业务中
- 多语言开发:python,java,nodejs,php ... ...
- 开发语言只是完成业务开发的工具,学习并在项目实践,这样才能从中学到东西
- 预知能力
- 代码将来,方便业务拓展
- 架构将来,方便架构拓展支撑业务增加
- 架构能力
- 分层
- 分割
- 分布式
- 缓存
- 集群
- 异步
- 沉余
- 自动化
- 安全
坏代码味道 程序员
列出曾经遇到的比较典型的坏代码味道截图,引觉得戒,BGM("多么痛的领悟"),醒醒吧,别把本身想的多牛逼,先从代码质量开始,拿着高薪,写着学生水平的代码人处处都是,遇到这样的代码请问要怎么拓展?web
总结:
- 不管你是什么类型的程序员,指望你可以对得住本身在岗位的这份责任
- 多反思自省,反观之前的代码,确定也是有些不合理的设计,总结而且沉淀
2018 新的一年,上班第一天,比较空闲,从新整理了下心情,拾起待写的博文,把它完成,指望新一年我能够有更多的沉淀
首发于本人独立博客