如何写好软件文档
不写文档会挨骂,写烂文档更挨骂,写好文档,才能少挨骂。
如果Web系统需要调用特定ActiveX控件才能操作,像身份证阅读器、读卡器、获取电脑网卡MAC地址等,而且预计控件厂商在一段时间内无法解决浏览器兼容性问题,那我们能不能想法让用户在非IE浏览器中也能调用控件呢?
本文提出一种解决思路:开发一个“控件小助手”代理程序。该程序安装在用户电脑中,负责调用ActiveX控件,并在本地建立一个简易Web Server,而业务系统相关页面则通过Ajax(备注:实际是JSONP)调用代理接口,从而间接地与控件交互。
本文继续以“学生信息管理系统”为例,讲述信息录入表单设计与开发中的一些问题。
对于行业系统来说,如果开发人员水平一般,而且又忙于赶工期,Web安全问题就很容易抛到脑后。然而,在这类系统中,用户输入内容往往是业务相关的,范围可以预测,不会特意输入敏感词语,因此又可以用简单粗暴的方法挡住大部分常见攻击。
在Java应用中,页面加载之前会先经过过滤器(Filter),我们便可以设置一个安全过滤器SecurityFilter,以“宁可错杀一万,不可放过一个”的方式拦截常见攻击,满足基本的安全需求。
道理大家都懂,其中的坑大家却不一定都清楚。
在中国,使用盗版软件已经是习以为常的事情。即使你去公安局自首,说自己电脑上装了一堆破解版,警察叔叔也不会把你抓起来,只会把你轰回家。但是请注意,给公司工作就是另一码事了——律师函警告!
希望借本文给大家提个醒,挣钱不易,务必小心!
除了在IDEA手工配置项目,也可考虑将传统Web项目转为Gradle项目,以便简化项目依赖管理、实现标准化构建等,也便于后续结合Jenkins等进一步实现自动化。
非功能性需求不会给项目带来收益,然而非功能性需求不仅要在需求阶段考虑好,而且在设计与开发过程中也要多加留意,否则都会成为项目的坑……
本文以一个政府的Web应用项目为例,讨论一些容易遗忘的非功能性需求。
微信机器人是一个比较难搞的东西,因为微信登录比较麻烦,而且官方不仅不提供API,还积极封杀机器人和“非法登录”的途径,导致研发风险较大。目前比较成熟的两种方式是模拟微信网页版以及程序控制微信PC版应用。
本文采用Puppeteer框架,借助真实的浏览器访问微信网页版,模拟浏览器的正常操作,以降低被封杀的风险。
为甲方升级系统时,堡垒机应用服务器正常,唯独FTP出现故障,无法上传程序包(堡垒机软件不支持直接向Linux服务器传文件)。在为无法完成部署任务发愁时,我们发现借助专用VPN可以直连甲方的Oracle数据库,并以DBA身份登录,于是我们临时编写了一款“基于Oracle的文件传输工具”。