风险提示:请使用正版!
道理大家都懂,其中的坑大家却不一定都清楚。
在中国,使用盗版软件已经是习以为常的事情。即使你去公安局自首,说自己电脑上装了一堆破解版,警察叔叔也不会把你抓起来,只会把你轰回家。但是请注意,给公司工作就是另一码事了——律师函警告!
希望借本文给大家提个醒,挣钱不易,务必小心!
道理大家都懂,其中的坑大家却不一定都清楚。
在中国,使用盗版软件已经是习以为常的事情。即使你去公安局自首,说自己电脑上装了一堆破解版,警察叔叔也不会把你抓起来,只会把你轰回家。但是请注意,给公司工作就是另一码事了——律师函警告!
希望借本文给大家提个醒,挣钱不易,务必小心!
除了在IDEA手工配置项目,也可考虑将传统Web项目转为Gradle项目,以便简化项目依赖管理、实现标准化构建等,也便于后续结合Jenkins等进一步实现自动化。
非功能性需求不会给项目带来收益,然而非功能性需求不仅要在需求阶段考虑好,而且在设计与开发过程中也要多加留意,否则都会成为项目的坑……
本文以一个政府的Web应用项目为例,讨论一些容易遗忘的非功能性需求。
微信机器人是一个比较难搞的东西,因为微信登录比较麻烦,而且官方不仅不提供API,还积极封杀机器人和“非法登录”的途径,导致研发风险较大。目前比较成熟的两种方式是模拟微信网页版以及程序控制微信PC版应用。
本文采用Puppeteer框架,借助真实的浏览器访问微信网页版,模拟浏览器的正常操作,以降低被封杀的风险。
为甲方升级系统时,堡垒机应用服务器正常,唯独FTP出现故障,无法上传程序包(堡垒机软件不支持直接向Linux服务器传文件)。在为无法完成部署任务发愁时,我们发现借助专用VPN可以直连甲方的Oracle数据库,并以DBA身份登录,于是我们临时编写了一款“基于Oracle的文件传输工具”。
Puppeteer是Google搞的爬虫框架,其特点就是我们可以直接通过程序来操作Google浏览器(服务器没装图形界面也没关系,这个Google浏览器不需要图形界面)。通过这个框架,我们就可以像正常使用浏览器一样爬网站,并且像进控制台那样操作页面获取信息,甚至还可以截图。只要网站不使用验证码或reCAPTCHA之类的大杀器,而且运营者不希望正常使用浏览器的用户也无法访问页面,那么我们就可以随便扒网站了。例如本文从https://tw.manhuagui.com网站扒漫画。
本文以被各大学校学生做滥了的“学生信息管理系统”为例,讲述信息展示列表开发中的一些问题。
开发业务系统,虽然原理非常简单,就是数据库的增删改查,而且业务规则也不过是一堆if-else判断,但是想要做好其实并不容易。本系列文章旨在说明:即使是看起来非常简单的基础开发工作,在设计和实现上也会有很多陷阱,需要非常认真和细心才行。
本文以简单的登录页面为例,为了突出问题,假设系统只有两个页面:一个登录页面,另一个是登录成功之后显示的“Hello world”。
本文介绍如何使用Phabricator进行人工代码审查(实际上是审计),以及供参考的操作规范。因为时间和篇幅有限,不再写如何搭建Phabricator,需要者可自行在网上搜索安装教程。
Phabricator是一个在浏览器上操作的开发管理平台,其中包括一个代码审查工具。工具支持两种代码审查方式,一种是事前审查,即提交之后必须先审查通过才能进入代码库;另一种是事后审查,也就是无论是否审查,代码都已经提交到代码库中。考虑我们自身实际情况(事前审查成本比较高),我们采用了“事后审查”的方式,本文也将讲述事后审查的操作。
甲方前一段时间使用360代码卫士对我们项目进行了“代码审计”,其中一个问题是“使用equals()来判断字符串是否为空”。由于甲方只关心问题数量,不关心问题性质(甚至连算不算问题都不在乎),我们只能硬着头皮去按甲方要求修改。