编程方法,选择比努力重要

本文通过两个实例强调了在编程和应用开发中,正确的选择往往比努力更重要。作者指出,对于网站开发,使用现成的框架如Flask比从零开始用Python和WebSocket更有效率。同时,使用SQL聚合查询能更简洁地完成数据统计,避免复杂的循环逻辑。建议开发者应多了解和利用现有工具,拓宽知识面,以提高开发效率。
摘要由CSDN通过智能技术生成

  对于应用程序的实现来说,在编程方法的选择上,选择比努力重要。

  儿子读初二,自己学习编程,他自己捣鼓也从来不问我,在熟悉了Python和WebSocket编程后开始做一些应用,想以此为后台来实现一个网站的全部程序,我也不好打击他,说了他也不会听,只能让他尝试着去做了。

  不夸张地说,在我眼里,他已经很厉害了!

  WebSocket的使用也相对简单,使用端给指定的地址和端口发送消息,后台从缓冲区里接收字符然后解析做其他处理后,再返回结果给前端。

  二进制文件(视频文件、图片)的传输和普通字符、16进制的文件(Word等)需要自己写语句来处理,在前端处理的时候,他只是把数据分片储存在一个变量里,用标记来分隔。后台需要使用正则表达式来一一提取,比较麻烦。

  为什么不使用JSON格式来传输呢?

  其实,做网站肯定是ASP、PHP或者JavaWeb来得方便和快捷。Python是可以做,起码也用Flask。有现成的不用,非要自己从头来过,这个是选择上的错误。

  再努力,再成功,一句话总结就是战术上的成功掩盖不了战略上的失败。毕竟不是开发一门语言或者实现某一个框架,只是为了实现一个普通的网站而已。

  Socket是通讯协议,C/S应用程序使用它来开发通讯程序,20多年前这个很流行,用它可以很快地实现两个应用系统的通讯,最典型的就是QQ。WebSocket也一样,网站后台程序可以使用它来实现端对端的相互通讯。

  但如果以此来开发网站应用程序,白白地浪费时间和精力,那就不值当了。

  多了解一些知识,适当地拓宽知识面可以让自己少犯这样的低级错误。

  一位同事要做一个统计,主表是单位,子表是各个单位的人员名单,要统计各个单位有多少人,按单位排序。

  他给我看了程序,解释了一下,提取单位列表,排序,然后使用一个循环来依次统计每个单位的人数,数据是对的。

  我说,这个统计一条语句就可以了,为什么要这样麻烦呢?!

select a.C02 ,count(b.C25) as C03 from EisDict a,computerAssetsInfo b where a.C02=b.C25 group by a.C02 order by a.C03

  就是两个关联表的统计查询而已。  

  他按照我说的试了一下,报错,提示语句有问题,但不知道哪里出了问题,我说你直接到MS SQL Server里面的查询器去执行,这样就知道错误了。

  提示好像是聚合语句里没有排序字段所导致的。

  那就改一下:

select a.C02 ,count(b.C25) as C03 from EisDict a,computerAssetsInfo b where a.C02=b.C25 group by a.C02,a.C03 order by a.C03

  把排序字段加到聚合函数里结果就出来了,也排序正常了。

  直接使用SQL语句就快多了。

  很多人喜欢使用if语句,比如在提交前检查用户的数据,很多if的嵌套让人看着头晕。

  我习惯使用if语句分开,方便查看。

let strFalse='';//错误提示
let canSubmit=true;//默认是可以继续
 				
if(curSelectTemplateFile.length==0) {
	canSubmit=false;
	strFalse="请选择模板文件!";
}
			
if(curSelectBookmark.length==0) {
	canSubmit=false;
	strFalse="书签不能为空!";							
}

$.ajax({//检查数据库ID是否存在
	url:'pspIsExist.php',
	data:json_str,
	type:'POST',
	datetype:'json',
	async:false,//不能异步
	success:function (data) {
			if(data=='YES'){ 
				canContinue=false;
				strFalse="要插入的记录重复!";
			}
	}
});

//......其他检查

if(canSubmit){
	//执行提交
	//......执行代码
}else{
	//提示错误
	//......提示错误的代码
}

  这只是个人习惯,但是同样的语句,选择不同的组合也带来不同的效果。

  在判断分类上,多使用switch等让自己很快就能明白逻辑。

  在传输上,更多地选择JSON格式或者XML格式而不是自定义的字符数据包可以让你省去很多的时间去封包和拆包。

  我们只是做低端的一些应用开发,大神们已经为我们准备了很多方便开发的工具,有好的工具和方法为什么不用呢?

  开始写应用程序之前,多了解和掌握这些可以为我们带来很大的便利,这些需要平日里花一点时间去积累和总结。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值