来自一个程序员的反思

举报
技术火炬手 发表于 2018/07/31 10:34:07 2018/07/31
【摘要】 程序员大军鱼龙混杂,水平的高低无法简单的从一个功能完成情况来评定,同样一个需求,功能都可以完成,但是不同程序员完成质量会不一样,完成质量的好坏需要从多方面评定,可以参考这些条件:易维护,易拓展,高可用,高稳定,高性能,安全性,容错,风控洞察身边的程序猿,可以归类出这几种类型:理论型,理论能力很强,对前沿技术略有了解,性格比较强势,需求分析和方案设计头头是道,对自己的设计的内容比较自信固执,反...

图片

程序员大军鱼龙混杂,水平的高低无法简单的从一个功能完成情况来评定,同样一个需求,功能都可以完成,但是不同程序员完成质量会不一样,完成质量的好坏需要从多方面评定,可以参考这些条件:易维护,易拓展,高可用,高稳定,高性能,安全性,容错,风控


洞察身边的程序猿,可以归类出这几种类型:

  • 理论型,理论能力很强,对前沿技术略有了解,性格比较强势,需求分析和方案设计头头是道,对自己的设计的内容比较自信固执,反观代码,质量差的一匹,逻辑乱,难维护难拓展,但是往往这种在公司评级还都挺高

  • 潜力型,业务能力强,开发设计和问题排查思路清晰,可以提出优化/改进方案,能对业务适当抽象,自我技术要求比较高,代码质量好,平时会调研前沿技术

  • 表面型,业务需求基本都可以完成,但是代码质量比较差,bug多,问题排查效率低,难维护难拓展,很少了解前沿技术,空闲时间就刷刷微博,看新闻,聊天

  • 老实型,做事勤勤恳恳,代码质量一般,平时表现比较不起眼,与同事沟通少,业余时间也不清楚具体在做什么

  • 大神型,总结就是各方面都很NB,问啥都能给予建议或者解决方案,但是这种人很少


服务端开发工程师应该具有哪些能力?

身处互联网公司的后端开发,所以用一个后端开发者角度出发

  • 基础能力

    • sql 注入

    • xss 跨站脚本***

    • csrf 跨站请求伪造

    • http 劫持

    • ddos ***

    • ... ...

    • 代码规范

    • 分层清晰

    • 逻辑清晰

    • 数据库操作

    • 了解http,能抓包工具和模拟请求工具

    • 了解前端/js,能使用浏览器控制台工具调试

    • 安全预防

  • 高级能力

    • 高并发处理/优化

    • 性能优化(加载速度、提高接口tps 、... ...

    • 解析需求,能给予合理的建议和解决方案

    • 面向抽象编程

    • 适当使用设计模式

    • 模块封装

    • 异步编程

    • 多线程编程

    • 经验

    • 能灵活使用缓存:redis,memcache 等

    • 能灵活使用消息队列中间件:rabbitmq,activemq,zeromq,kafka,等

  • 辅助能力

    • 手段

    • 懂得***别人,自己就知道如何防御

    • 模拟请求,寻找突破口,如:修改参数

    • 并发请求,导致并发逻辑问题。如:获得多签到积分(多数据操作接口可能会压垮服务器)

    • 尝试***,sql注入,跨站脚本***,等 ...

    • ...

    • 能开发爬虫功能就代表对web这块已经掌握比较好

    • 爬虫

    • ***别人业务(适可而止,自行把握)

  • 沟通能力

    • 成员沟通,讨论设计方案,分享思路,技术点

    • 协作沟通,主动性很重要

  • 排错能力

    • 问题反馈快速响应

    • 根据问题现象快速定位问题

    • 快速给出解决方案并上线,告知客服,反馈给用户

  • 学习能力

    • 开发语言只是完成业务开发的工具,学习并在项目实践,这样才能从中学到东西

    • 调研前沿技术并且最好是可以运用到项目业务中

    • 多语言开发:python,java,nodejs,php ... ...

  • 预知能力

    • 代码未来,方便业务拓展

    • 架构未来,方便架构拓展支撑业务增长

  • 架构能力

    • 分层

    • 分割

    • 分布式

    • 缓存

    • 集群

    • 异步

    • 沉余

    • 自动化

    • 安全


坏代码味道

列出曾经遇到的比较典型的坏代码味道截图,引以为戒,BGM("多么痛的领悟"),醒醒吧,别把自己想的多牛逼,先从代码质量开始,拿着高薪,写着学生水平的代码人到处都是,遇到这样的代码请问要怎么拓展?

  • 坏味道1 (分层不清,在控制层拼接sql) 
    图片

  • 坏味道2 (函数参数过多) 
    图片

  • 坏味道3 (过分深层) 
    图片

  • 坏味道4 (相同功能需要提取函数+过分深层) 
    图片


总结:

  • 无论你是什么类型的程序员,期望你能够对得住自己在岗位的这份责任

  • 多反思自省,反观以前的代码,肯定也是有些不合理的设计,总结并且沉淀

2018 新的一年,上班第一天,比较空闲,重新整理了下心情,拾起待写的博文,把它完成,期望新一年我可以有更多的沉淀


首发于本人独立博客


本文转自SFLYQ博客51CTO博客,如需转载,请自行联系原作者。

原文链接


【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。