在学习Web开发4年之后,我自己可以独立做一些基本的项目了。在加入前单位秒针,也做了几个Web项目。

我发现一个现象,很多公司大部分的Web项目,用到的技术很少,主要就是SSH等框架,实现一些行业的业务逻辑,仅此而已。

技术上很容易实现,无非就是效率问题。

我曾经觉得,相比别人,自己还是比较靠谱的。代码写得逻辑清晰,bug较少,进度按时完成。

直到后来,我陷入了深思。

那天,我想知道全国有多少个公司,地区分布,行业分布。我就去了,武汉某工商局网站查了下,发现有1千多万(当然,有很多都是已经注销或者死掉的)。

怎么尽可能多的拿到它们的数据呢?入侵他们的数据库,我貌似没有这个能力,也不想这么做,法律上风险也比较大。

我观察了网站的URL之后,采用了最简单的办法。
   http://a.com?pageSize=1000000000&pageNo=1

这个网站查询结果最多显示10页,于是我就把每页显示的条数,逐步调整为该网站所能承受的最大值。pageSize太大,获得的数据量巨大,会把这个网站搞挂。

我就是采用这种方法, 获得了大量的真实数据。

我很想吐槽,工商局的网站真TMD垃圾, 到处是漏洞。我也很得意,看我Coder多厉害,稍加分析,抓住个bug,就可以为我所用。
-------------------------------------------------------------------
   由于有了这次“黑客” 经历,我写分页代码的时候,专门做了检查。既然我可以黑别人,别人自然也可以黑我啊,反正是互相黑。

我的个人官网,最开始也没有怎么处理,今天去黑了下,问题真大。厉害一点的黑客,应该可以通过这个bug,干点坏事。

http://fansunion.cn/article/list.html?pageNo=1&pageSize=1

现阶段,只做了一些简单的“防范” 。
   /**

* 检查pageSize的大小,如果大于最大值,显然是受到了“攻击”,调小有点。防止被攻击,比如把pageSize设置成10000,每页就显示10000条数据,给数据库查询造成很大压力。

*/

public void check() {

pageSize = Math.abs(pageSize);

pageNo=Math.abs(pageNo);

if (pageSize > maxPageSize) {

pageSize = defaultPageSize;

pageNo=1;

}

}

pageSize和PageNo都是整数Integer,而且必须是 正数,而不能是 负数,比如-1。每页显示的最大条数有限制,无论前端怎么传入pageSize,最多只显示50条。
-----------------------------------------------------------
就分页这么小的一个功能,安全问题一大堆,如果再考虑 复用、扩展、稳定,就更难了。

如果把靠谱的程序员,定义为:在保证进度的情况下,能写出 功能正确、安全、稳定、性能不错的代码,那么,真的不容易达到。

靠谱的程序员真的不容易做到,如果你敢认真地审视自己的代码的话。

目前码农一枚,先努力成为一名靠谱的程序员再说,走在靠谱的道路上~

共勉~

小雷FansUnion-博学的互联网技术工作者
2014年11月26日
湖北武汉循礼门

原文首发:http://fansunion.cn/article/detail/527.html

转载于:https://www.cnblogs.com/qitian1/p/6463103.html

雷观(七):靠谱的程序员,不是随便一个码农就可以做到的相关推荐

  1. 为什么中国的程序员总被称为「码农」?

    很多同学会问,IT行业在中国并不是特别差的行业,而程序员的工资也并不低,但为什么中国的程序员总被称作码农或者说是苦逼的程序员?中国的程序员生活和欧美的有什么不一样? 先说两个小段子 街边,一对情侣在吵 ...

  2. 程序员:不要自称为码农

    每年都有无数年轻程序员,加入软件行业.他们在学校里学过编程,但是对这个行业的现实一无所知.Patrick McKenzie 是美国一家小软件公司的老板,他写了一篇长文,介绍这个行业的一些实际情况. 原 ...

  3. 中国的程序员为何经常被叫做码农?

    实际上IT行业在中国并不是特别差的行业,而程序员的工资也并不低,但为什么中国的程序员总被称作码农或者说是苦逼的程序员?中国的程序员生活和欧美的有什么不一样? 编程活动和机械电子一样可以视为一种工艺(c ...

  4. 我,32岁,小米公司程序员,揭 开北京“码农”的真实收入

    985大学本科毕业后,许多同学都选择考公务员或进入事业单位工作,渴望拥有铁饭碗工作. 而我却恰恰相反,另辟蹊径,选择了另一条鲜有人走的路,选择进入一家企业当程序员. 如今在单位已经工作3年,已经步入企 ...

  5. 不想成为架构师的程序员,只配叫码农

    刚刚过去的双十一,让"高性能""高可用""亿级"这3个词变成了技术热点词汇,也让很多人再次萌发成为「架构师」的想法. 先问大家一个问题:你觉 ...

  6. 西乔说要把「神秘的程序员们」当做一个文化产品来做

    西乔何许人也 她是「神秘的程序员们」系列漫画的原创作者,每篇漫画都能戳中程序员的笑点和泪点,经常有10W+的阅读量,可以说是最懂程序员的漫画作者:她做设计也管理项目,为FT中文网和纽约时报中文网重构或 ...

  7. 不愿做「奴隶」的程序员们组建了一个王国

    点击上方"CSDN",选择"置顶公众号" 关键时刻,第一时间送达! 有一天,程序员们受够了这个世界 他们不但每天要加班 遭受产品经理的压迫 还要时刻提防被拉去「 ...

  8. 不愿做「奴隶」的程序员们组建了一个帝国

    点击上方"程序员大咖",选择"置顶公众号" 关键时刻,第一时间送达! 有一天,程序员们受够了这个世界 他们不但每天要加班 遭受产品经理的压迫 还要时刻提防被拉去 ...

  9. 程序员必读:一个码农在硅谷的悲惨故事

    这是一个悲惨的故事.一个硅谷码农被创业公司炒了鱿鱼,因为他开发的应用有太多Bug. 还能比这更惨一点吗?能的.这个码农不但丢了工作,还被公司在苹果应用商店公开指责.人生已经如此的艰难,有些事情为什么还 ...

最新文章

  1. python turtle画画 30排以内_Python竟能画这么漂亮的花,帅呆了(代码分享)
  2. python调用shell命令-在Python中执行shell命令的6种方法,你都知道吗?
  3. 信息系统项目管理师-项目质量管理核心知识点思维脑图
  4. JS 数据处理技巧及小算法汇总(转载)
  5. c语言调用labview方法,LabVIEW与C语言接口的方法
  6. csp-s模拟测试44「D·E·F」
  7. restful get不传参数404_你知道什么是 Restful 风格吗?SpringMVC 带我们实现它!
  8. sql server 监视_使用动态管理对象监视SQL Server –会话和连接
  9. 利用jetson nano上自带的opencv实现多线程rtsp拉流、低延迟较稳定显示摄像头视频(c++)
  10. 阶段5 3.微服务项目【学成在线】_day03 CMS页面管理开发_03-自定义查询页面-前端...
  11. 开发基于CXF的 RESTful WebService web 项目 webservice发布
  12. 《电机学和电机驱动入门》
  13. 网站快速收录-网站快速收录工具下载免费
  14. 从零开始做小程序(三)——引入组件库
  15. 论文《Fast spatial–temporal stereo matching for 3Dface reconstruction under speckle pattern projection》
  16. 解决Minimum supported Gradle version is 7.0.2. Current version is 6.8.
  17. vue element table expand 扩展行点击行展示且保证只展示一行
  18. 阿波罗服务器的投资项目,阿波罗未来产业城调整规划范围 将重点打造“两轴一片”空间格局...
  19. 【KG】构建《红楼梦》知识图谱
  20. mdio clause22 clause45以及marvell直接寻址/间接寻址的使用说明--基于mv88e6390 交换机

热门文章

  1. 3d stroke插件下载_推荐一款好用的PS 3D地图插件,PS插件3D Map Generator ,一键生成地图神器...
  2. php渲染nodejs api,如何使用nodejs 服务器读取HTML文件渲染至前端
  3. python 深度 视差 计算_开源双目视觉BM算法-Matlab/Python/Javascript
  4. c语言进制转换pdf下载,C语言实现任意进制转换.doc
  5. shell指令可以直接在终端输入吗_shell不是LInux系统的壳吗?咋还能脚本编程了?...
  6. auuc 评估指标_分类之性能评估指标
  7. 华为机考HJ13句子逆序C语言弱智解法
  8. Pcl:Normal的定义结构及输出
  9. C++:文件操作2 文本文件和二进制文件的读写
  10. 阿里云rds for mysql平台介绍_阿里云RDS for MySQL实例创建账号和数据库?