提升自己的程式設計能力 — 穩定性/安全性/整合性三個願望一次滿足

Photo by Victor Lozano on Unsplash

初學者在掌握了基本的程式設計能力之後,往往都希望進一步提升自己的能力。我們主要專注在三大區塊:穩定性,安全性,與整合性。

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

文章來源:https://i-tea.com.my/en/blog/improve-your-programming-skill

▍艾堤數位

本文作者
田士鋒 Jason Tian
資訊工程碩士
14歲開始接觸網頁設計,15歲參加高中網頁設計比賽佳作,18歲參加flash動畫設計個人比賽冠軍,校內網頁設計比賽冠軍。擅長跨領域結合,高中時以為自己喜歡生物科技而在大學選擇生物科技係為第一志願,直到大三才認清自己對程式語言的熱愛而決定轉換領域,因此研究所便結合了資訊與生物領域的知識,發表了幾篇論文。在大學求學過程中也與志同道合的朋友成立公司專接網路應用程式的開發專案,累積了不少開發經驗。不管是購物網站,企業內部管理系統ERP,報名系統,拍賣系統,庫存管理系統,手機App,各種電子商務系統都曾經參與開發。也曾經在fb當紅時寫了一個社群行銷平台「抽獎王」,並在三天內利用病毒行銷的概念吸引了四萬個會員。 2013年因緣際會下參加Amazon AWS的舉辦的CloudKata程式設計比賽,在一小時內拿到最高分數擊敗所有對手奪得冠軍。目前是台灣920 App(飲料訂購平台)的共同創辦人,已累積300家飲料店。也是馬來西亞Consignment Project(寄賣模式)的共同創辦人,已累積1300個店家。
簡歷:
2003 寬中網頁設計與flash動畫比賽冠軍
2008 艾堤數位科技股份有限公司創辦人
2009 台大生化科技系畢
2010 在異奇網股份有限公司擔任技術長
2011 台大資訊工程研究所畢
2013 AWS cloudkata 台灣區程式設計比賽冠軍
2014 Startup weekend #10 第三名
2015 Consignment, 920 App 共同創辦人
0

No Comments

No comments yet

Leave a Reply

Your email address will not be published. Required fields are marked *