Search this site
Embedded Files
Skip to main content
Skip to navigation
Technical Knowledgebase
Technical Knowledgebase
Choosing a Linux Distribution
Coding Convention
curl vs wget
Dynamic Authorization
MySQL data dump
Remote Collaboration with screen over ssh
Strange Things in a Developer's Life
AngularJS: Fixing unknown provider problem
Version Control Systems
X Virtual Frame Buffer command
Developer Notes
DevOps
Chef Overview
Deploying Rails on Mongodb, Redis, Puma, and Nginx
Server Provisioning
Setting up Chef Server
Setting up Chef Workstation
Workstation
Mac Development Workstation
Ubuntu Development Workstation
Unmaintained Workstation Setup Guide
CentOS Development Workstation
Debian Development Workstation
OpenSuSe Development Workstation
Technical Knowledgebase
Technical Knowledgebase
Choosing a Linux Distribution
Coding Convention
curl vs wget
Dynamic Authorization
MySQL data dump
Remote Collaboration with screen over ssh
Strange Things in a Developer's Life
AngularJS: Fixing unknown provider problem
Version Control Systems
X Virtual Frame Buffer command
Developer Notes
DevOps
Chef Overview
Deploying Rails on Mongodb, Redis, Puma, and Nginx
Server Provisioning
Setting up Chef Server
Setting up Chef Workstation
Workstation
Mac Development Workstation
Ubuntu Development Workstation
Unmaintained Workstation Setup Guide
CentOS Development Workstation
Debian Development Workstation
OpenSuSe Development Workstation
More
Technical Knowledgebase
Choosing a Linux Distribution
Coding Convention
curl vs wget
Dynamic Authorization
MySQL data dump
Remote Collaboration with screen over ssh
Strange Things in a Developer's Life
AngularJS: Fixing unknown provider problem
Version Control Systems
X Virtual Frame Buffer command
Developer Notes
DevOps
Chef Overview
Deploying Rails on Mongodb, Redis, Puma, and Nginx
Server Provisioning
Setting up Chef Server
Setting up Chef Workstation
Workstation
Mac Development Workstation
Ubuntu Development Workstation
Unmaintained Workstation Setup Guide
CentOS Development Workstation
Debian Development Workstation
OpenSuSe Development Workstation
Coding Convention
ระเบียบการเขียนโปรแกรมทั่วไป
ระเบียบการจัดหน้าโปรแกรม
ย่อหน้าใช้ soft tabs (เว้นวรรคแทน tab character \t) ย่อหน้าละ 2 ตัวอักษร
โค้ดไม่ควรยาวเกินบรรทัดละ 120 ตัวอักษรรวมย่อหน้า
เมื่อเปิดวงเล็บ ( [ { หรือ do ให้ขึ้นบรรทัดใหม่ เพิ่มย่อหน้าหนึ่งระดับ
เมื่อมี comma , ให้ขึ้นบรรทัดใหม่ ไม่เพิ่มระดับย่อหน้า
เมื่อปิดวงเล็บ ) ] } หรือ end ให้ขึ้นบรรทัดใหม่ ลดย่อหน้าหนึ่งระดับก่อนปิด
หลัง end ให้เว้นว่างหนึ่งบรรทัด
ยกเว้นกรณีที่เปิดวงเล็บและปิดวงเล็บสามารถอยู่บนบรรทัดเดียวกันได้โดยไม่ยาวเกิน 120 ตัวอักษรรวมย่อหน้า เว้นวรรคหลัง comma , หนึ่งตัวอักษร
ถ้าวงเล็บ { } อยู่บนบรรทัดเดียวกันให้เว้นวรรคก่อนและหลังเปิดวงเล็บ { และก่อนปิดวงเล็บ }
การเรียกใช้ method(parameter) ต้องไม่เว้นวรรคก่อนเปิดวงเล็บ
เมื่อจบบรรทัด ต้องไม่มี white spaces ท้ายบรรทัด
เมื่อจบไฟล์ ต้องมีบรรทัดว่างหนึ่งบรรทัด หรืออักนัยหนึ่ง ทุกไฟล์ต้องจบด้วย \nEOF
เมื่อมี directive เช่น require (Ruby), import (Java), #include (C) ฯลฯ ให้ใช้ directive ละ 1 บรรทัด เมื่อจบ directive ทั้งหมด ให้เว้นว่าง 1 บรรทัด
เครื่องหมายต่างๆ ที่มี operand 2 ด้าน +, =, -, *, /, =>, <=>, ? : และตัวเลข ให้เว้นวรรคก่อนและหลังเครื่องหมายและตัวเลข 1 ตัวอักษร
เครื่องหมายต่างๆ ที่มี operand ด้านเดียว !value, *args ให้เว้นวรรคก่อนเครื่องหมาย 1 ตัวอักษร
Version Control Usage
ก่อน commit ทุกครั้งต้องรันเทสทั้งหมด และเทสทั้งหมดต้องผ่าน
ถ้า commit แล้ว Continuous Integration Build เสียหาย ห้ามทุกคนในทีม commit จนกว่าสาเหตุของปัญหาจะได้รับการแก้ไขจากผู้ที่ commit ปัญหานั้น
1 commit อย่างน้อยที่สุดต้องมี spec และ/หรือ code สำหรับ 1 task ใน story
1 commit อย่างมากที่สุดต้องครอบคลุมไม่เกิน 1 story
commit message ต้องมีเลข story number กำกับเสมอ
ยกเว้นกรณีซ่อม Continuous Integration Build
ผลลัพธ์ที่ได้ เมื่อต้องการเลือก deploy เฉพาะบาง story ต้องสามารถดึง commit มาได้โดยไม่มีผลกระทบจาก story ที่ไม่เกี่ยวข้องโดยที่การทดสอบ ฯลฯ ต้องครอบคลุมครบถ้วน
Report abuse
Report abuse