求问水区程序员,自学的码农如何学习规范开发的过程和步骤?

loogiajjjh-avatar

loogiajjjh

2020-05-02T08:14:17+00:00

背景:计算机专业毕业,有一些编程基础,在体制内工作,自学C#和php写了几个小程序和小OA方便日常工作,现在自费买了个二手洋垃圾服务器挂机房自己玩。

然后现在有一个问题,因为没有接触到正规的商业公司,完全不懂一个软件的开发规范和项目流程,导致写的东西代码量多了之后可读性和维护性下降。

例如C#写软件,所有代码在一个页面内。虽然我知道要封装函数和类,虽然知道要注释和用长变量名,但本质上还是在一个页面内写的最后打包成一个EXE,可读性很差。

例如php写bs架构的系统,虽然一个php文件对应一个页面也没大问题,但如何优化程序,如何优化十万以上级别MySQL数据库却是一头雾水。之前想对几年来存储的数据进行一个数据挖掘分析,后台分析时间动辄超过几分钟然后网页超时,虽然通过延长超时时间还有把数据表转存到内存中可以大部分解决问题,但还只是治标。

例如不懂深一点的防攻击防注入,只会基础的登录验证和字符串过滤,导致程序不敢开放外网访问权,曾经被莫名侵入删库。

例如不会版本控制和软件打包,改来改去自己都不知道改了哪里,发布软件也就是点一下运行,然后在debug文件夹里面拷贝exe文件…



买过不少书,也网上找过不少教程,但都是基础的知识性东西,哪怕深一点专业一点的都没有,很头疼。自己坐的小程序都是想一点做一点,修修补补,每次定位代码都好久。

这些东西涉及的方面都比较大,估计老哥们三言两语也说不清楚,主要就是给我指个路,去哪里学习或者买什么书
Goldn-avatar

Goldn

[img]http://img.nga.178.com/attachments/mon_201209/14/-47218_5052bc4cc6331.png[/img]github

c#去微软文档里搜安全性。
kohgito-avatar

kohgito

阅读优秀开源项目.
Funny-avatar

Funny

推荐《代码大全》这本书,系统介绍整个开发流程的方方面面,工作1年左右才看过这本书,受益匪浅
KrabbyPattyFPS-avatar

KrabbyPattyFPS

照规范的抄,拿开源项目改,学习一下面向对象
loogiajjjh-avatar

loogiajjjh

[quote][pid=419606789,21633485,1]Reply[/pid] Post by [uid=3525515]春月夜[/uid] (2020-05-06 16:21):

推荐《代码大全》这本书,系统介绍整个开发流程的方方面面,工作1年左右才看过这本书,受益匪浅[/quote][img]https://img.nga.178.com/attachments/mon_202005/06/-7Q5-fx3zZlT3cSl4-l4.jpg.medium.jpg[/img]

是这个书吗?
self-loathing.-avatar

self-loathing.

这个需要日积月累的,最好就是用框架demo解决功能代码划分,然后再持续学习各种代码架构模式,设计模式,代码优化等知识
loogiajjjh-avatar

loogiajjjh

[quote][pid=419605908,21633485,1]Reply[/pid] Post by [uid=43377109]迷路的小羽先生[/uid] (2020-05-06 16:18):

[img]http://img.nga.178.com/attachments/mon_201209/14/-47218_5052bc4cc6331.png[/img]github

c#去微软文档里搜安全性。[/quote]Git有不少人推荐过,但是因为网络原因一直没具体研究过
s0apyillusi0n-avatar

s0apyillusi0n

看别人的开源代码
bigwood10-avatar

bigwood10

面向对象这块 去了解下常用的设计模式
工厂 代理 委托 观察者 责任链等等

虽然很多设计模式在编程初学者看来像是脱裤子放屁 明明一两行代码能解决的事情却要拆成好几个类去写

但写多了自然能理解为什么要这么写

至于web安全防注入什么的 选用主流的框架 不要裸写
按照每个框架的开发安全规范去写就不会有太大问题
Eternal is Trash-avatar

Eternal is Trash

多去爬开源项目,现在不管啥都用maven,git。去看看那些star高的 多看看很快就懂了。
loogiajjjh-avatar

loogiajjjh

[quote][pid=419610587,21633485,1]Reply[/pid] Post by [uid=61511035]再也不作死[/uid] (2020-05-06 16:33):

这个需要日积月累的,最好就是用框架demo解决功能代码划分,然后再持续学习各种代码架构模式,设计模式,代码优化等知识[/quote]php我知道有不少框架

c#也有吗?有没有指路介绍几个适合个人用的?
MeLviZz-avatar

MeLviZz

我觉得最快的方法,就是去某个公司上班,能领悟的很快。
Rheezzy-avatar

Rheezzy

这玩意说白了还是经验和眼界,多看别人项目吧。

如果做的是内部项目就找人沟通交流多问。

大公司经验,项目经验还是很重要的。
Shaden-avatar

Shaden

软件工程的设计模式
self-loathing.-avatar

self-loathing.

[quote][pid=419611495,21633485,1]Reply[/pid] Post by [uid=38202664]亦若涟云[/uid] (2020-05-06 16:36):

php我知道有不少框架

c#也有吗?有没有指路介绍几个适合个人用的?[/quote]经验这东西跟语言没太大关系,跟项目类型有很大关系
Lenux-avatar

Lenux

标记紫薯布丁
cyren-avatar

cyren

答案就是不要主动去学,如果写着写着把自己恶心到了,自己想办法解决,解决完了再翻翻书,看看自己的做法是不是就是书上的某种设计模式。

这种事你要自己遇到需求再去学习,凭空学其实不好,有可能会弄得过度设计。
Zekzies-avatar

Zekzies

设计模式 知名开源项目

其实最能感受的应该是亲自维护一坨需求变更快 变更大的屎山
Zareow-avatar

Zareow

别自学了……找家公司先干着吧,有些东西不是光靠学就够的