应用程序开发总结(1)--写作的起点

         工作已经四年了,一直从事三维方面的工作。现在或多或少的完成了基本的功能,还有些高级的和低级的功能不想做。积累了一些编程技巧或者框架或者设计算法方面的经验。

        在这里写系列文章,一则是为了分享,二则是想总结和提高自己的表述能力。我认为软件技术的分享可以分为5种。第一种是代码或者算法,第二种是模式和技巧,第三种是框架和技术,第四是架构和系统,第五是应用和征途。我在此打算分享第一和第二类的相关内容。


第一章   CS和BS

    大学毕业,公司就要我做CS系统,当时不清楚CS和BS的差异,也算是我学的知识少。件开发就可以分为CS和BS。其实这种分法很勉强,因为我不知道单机版的程序或者平台算什么。

     说到这两点,或许大家应该更多的关注"S",也就是server.Server的存在才是BS和CS存在的基础。没有Server,那么你的程序就不应该叫BS或者CS系统,顶多算一个单机应用系统或者程序。

     与CS相比,BS更注重内容,BS更多的向用户展示内容服务,它是一种资源分享。而CS更多的是提供用户的良好的操作方式和强控制。现在很多的功能都可以通过BS来做了,CS的开发者有时候会犯一个思想的错误,认为BS在他的领域一定没有CS做的好用。他们不认为BS能够完成CS的一些功能,开发效率低和使用不方便等。从开发者的角度来说,这种想法是没错的。但是这并没有表现出该根本的差异。如果你需要展示的是内容服务,那么BS更适合。比如对象属性信息查询。

     同样的BS开发者也要看到CS或者直接的应用程序的开发的优势。他们很容易提供一些诸如算法测试等开发。动不动就刷新页面是一种费事的测试方法。

    另外还是要深刻理解Server的存在必要性,它应该是弱功能还是强功能的。不应该把Server简单的当做数据发布服务器。


第二章 登录窗口

     登录窗口其实要做的事情很简单,一是用户登录的界面,二是登录的认证。至于获得相关用户的角色信息,那就是后面的事情了。而这点在我们小组的开发前期就没有理清。导致登录窗口过于臃肿,而且当后来服务器获取应用数据的方式发生改变后,登录窗口很多的代码变成了异常代码。

      用户身份认证里面的学问其实很多。最简单的是提交用户名和密码,在服务器中判断是否存在。这种方式很容易出现SQL语句破解。如果你的SQL语句是这样的

Select count(*) from table where username='a' and password='b'

当用户名和密码是'1' or 1=1时,上面的SQL语句就变成

       Select count(*) from table where username='1'  or 1=1  and password='1' or 1=1

       这时候查询语句就是Select count(*) from table,就达到了破解密码的目的。所以用户登录模块是一个很严肃的问题,最后参考安全方面的标准,并减少登录时候过早的访问数据。

       每个人的手头上或许有很多账号和密码了,如果能在所有地方都使用一个强的账号体系,这是多么美好的一件事情。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值