初学者在掌握了基本的程式设计能力之后,往往都希望进一步提升自己的能力。我们主要专注在三大区块:稳定性,安全性,与整合性。
1. 稳定性
稳定性代表的是程式系统的架构,我们用大楼来比喻成系统:一个大楼遇到地震是否会崩塌取决于地基是否打得稳以及防震是否有做好。同理,一个程式系统是否会轻易崩溃也是取决于基础的架构是否有做好。
当你开始接触专案开发时,应该很常遇到同一组程式码被修改了好几次,旧的版本都被覆盖了,我们永远只看到最新版的程式码;偶尔我们会想要找回旧的版本却已经石沉大海,这是因为没有做好版本控制所造成的。Github将会是能够帮助Programmer管理好Code的好工具。第一天的课程我们将让大家了解如何使用Github,介绍一些Git的基本指令以及如何做好版本控制。
"写系统一定要用Framework“ 相信很多初学者一定有听过老前辈这样说。没错,使用Framework就像帮我们的系统打了很稳的地基一样,可以增强系统的稳定性,使用Framework好处多多,可以参考这篇文章,这里就不多作赘述。在程式设计领域里,大部分的Framework都是以MVC的概念来开发的,因此非常着重在物件导向的程式设计。为了让大家可以了解MVC的精神,第一天我们会先介绍OOP(Object Oriented Programming,简称OOP)的基础概念,进入第二天的设计模式MVC后,再带入Framework的使用。在这门课程里,我们使用的是又轻便又强大的CodeIgniter PHP Framework,不管是开发小型中型大型系统都可以迎刃而解。
2. 安全性
安全性代表的是程式系统的防守能力,在现今资讯如此重要的年代,如果你的系统能够轻易就被入侵代表你的资料很容易就落入他人手里,面对的损失是很惨重的,因此做好基本防守能够避免掉一些不必要的损失。
网路安全是Programmer必须重视的项目之一,当我们辛辛苦苦写了一些Authentication系统,以为万无一失时却万万没想到自己的程式充满了漏洞,让骇客有机可乘时,那种破坏力对programmer来说其实不只是物质上的损失,也可能造成精神上的伤害。当然我们都了解没有任何系统是无敌的,但为了让你的客户跟你自己放心,我们就尽可能将安全防护做好吧。
第三天的课程将介绍几种常见的网路安全问题,如:SQL INJECTION,XSS,BRUTE FORCE等,了解骇客是如何攻击你的网站以及如何做好应对措施。
3. 整合性
整合性代表的是你的系统跟其他人的系统是否能够整合起来,轮子不必自己发明,直接用别人已经写好的功能,或是自己开发接口让其他系统能够合法取得你的资讯,完成多功能的整合。
最常见的整合例子就是使用Facebook Login与Google Login;透过Facebook 跟 Google提供的API,我们可以在使用者授权下得到他们在社群平台上的个人资料,节省使用者填写表格的时间,让注册流程更快速。
第四天的课程我们除了让学生实作Facebook与Google Login外,也会让学生了解如何自己写API,让其他系统可以跟自己的系统串接。JSON结构是目前API串接最受欢迎的格式,也会在本次课堂重点讲解如何建构与解读。
4. 其他
除了稳定性,安全性与整合性外,我们也会花一些时间在效能提升方面。达成同一个目的有不同的演算法,到底哪一种演算法的效能比较好以及如何评估,也会在第三天的Performance Tuning,与Useful Algorithm in Live Projects里提到。下次如果写出来的程式慢吞吞,总该知道要从哪里去改善了。
第五天的课程是很多学生都很感兴趣的题目-如何用Linux架设Web Server,Database Server。安装好的Web Server该如何透过 Lets Encrypt产生SSL进行HTTPS的连线。这个世代的Web application已经离不开https的连线方式了,因为在安全的连线环境下,客户才能用的放心,避免资料外泄。自己架Server的好处是可以不必用Shared Hosting,让系统独立,可以深入底层安装更多的工具来提升系统的效能。
报名JBPC的进阶班课程能够提升你的程式设计能力
如果你觉得以上提到的几项技能都对你很重要,又想要获得提升,欢迎报名我们课程!我们致力于提升学生的Programming能力,入门班让学生从0到1,进阶班让学生从1到10,现在就报名我们的进阶班,提升自己的程式设计能力吧。
报名网址:https://jb-programming-class.i-tea.com.my/cn/web-programming-class-advanced