botbotbot 's blog


Good Code

  1. Clean code
  2. Semantic method naming

Design Pattern

  1. Design Pattern ตอนที่ 1 ภาพรวมของการออกแบบ
  2. Design Pattern ตอน 2 Singleton
  3. Design Pattern ตอนที่ 3 Facade
  4. From STUPID to SOLID Code!
  5. The SOLID Principles Example in PHP
  6. The SOLID Principles in 5 minutes
  7. Tell, Don’t Ask

Functional Programming

  1. การเขียนโปรแกรมเชิงฟังก์ชันเบื้องต้น ตอนที่ 1
  2. การเขียนโปรแกรมเชิงฟังก์ชันเบื้องต้น ตอนที่ 2
  3. การเขียนโปรแกรมเชิงฟังก์ชันเบื้องต้น ตอนที่ 3
  4. Statement vs. Expression
  5. การเขียนโปรแกรมเชิงฟังก์ชั่น (Functional vs. Imperative Programming)

Pair Programming

  1. Pair with Me
  2. Power of Pair Programming by roofimon
  3. Some thoughts on pair-programming styles
  4. Effective Navigation in Pair Programming
  5. All I really need to know about pair programming I learned in kindergarten

TDD - My Talk about TDD

One of the ironies of TDD is that it isn’t a testing technique (the Cunningham Koan). It’s an analysis technique, a design technique, really a technique for structuring all the activities of development. - Kent Beck’s “Test-driven development: by example”:

  1. TDD :: ถ้าอยากเดินให้เร็ว วิ่งให้ไว ต้องเริ่มจากเลือกเส้นทางให้ดีก่อน
  2. TDD ง่ายๆ สั้นๆ (Java)
  3. TDD with Java Slide
  4. Coding Dojo - TDD - Lesson 1 (Java)
  5. Understanding Test Driven Development
  6. TDD is dead. Long live testing.
  7. 5 Questions Every Unit Test Must Answer

    Next time you write a test, remember to answer all the questions:

    1. What are you testing?
    2. What should it do?
    3. What is the actual output?
    4. What is the expected output?
    5. How can the test be reproduced?

Testing Story

  1. มาดูกันว่า Mock, Stub และ Dummy แตกต่างกันอย่างไร ?
  2. The Testing on the Toilet (TotT) series
  3. Testing on the Toilet: Test Behaviors, Not Methods
  4. Testing on the Toilet: Test Behavior, Not Implementation
  5. TotT: Better Stubbing in Python
  6. Unit testing best practices
  7. Good Test, Bad Test
  8. TestDouble - Martin Flower
  9. Testing on the Toilet: Know Your Test Doubles
  10. Understanding Test Doubles (Mock vs Stub)
  11. Mocks Aren’t Stubs
  12. Unit Tests Are FIRST Fast, Isolated, Repeatable, Self-Verifying, and Timely
  13. A Set of Unit Testing Rules
  14. Why Most Unit Testing is Waste By James O Coplien
  15. Test-induced design damage

    When you stop driving your design first, and primarily, through your tests, your eyes will open to much more interesting perspectives on the code. The answer to how can I make it better, is how can I make it clearer, not how can I test it faster or more isolated. - DHH

  16. Testing like the TSA - Thinking Skills Assessment

    Should read in “Seven don’ts of testing” topic

  17. We don’t (always) need no stinkin’ testing framework


  1. Ascii Flow - Online Ascii Diagram
  2. Ditaa - Ascii Diagram To Image Diagram
  3. TextDiagram - drawing Ascii UML sequence diagram in pure text
  4. Mermiad - Diagrams and flowcharts from textsimilar to markdown
  5. JS-Seq-Diagram - Turns text into UML sequence diagrams


  1. How 500px serves up over 500TB of high res photos
  2. Software Design Steps - User Interface to Data Model then API
  3. How Mashape Manages Over 15,000 APIs & Microservices
  4. Backend Developer สำหรับ Game Studio ต้องทำอะไรบ้าง?

Better Programmer

  1. Programming Is Terrible
  2. Software needs to be better — FunFunFunction #1
  3. “How do I learn to write simpler, more efficient code with fewer lines?”
  4. How does one quickly understand a large code base and start contributing to it?
  5. Be the worst programmer at your company.
  6. Algorithm skills doesn’t make a good programmer.
  7. Staying relevant as a programmer
  8. Developer ควรลดความซับซ้อนของ code ลงบ้างนะ
  9. Googling does not make you a good developer

    nowadays, the most important quality of a developer is ability to learn new things quickly.

    It is a pitfall to read everything.

  10. Manifesto Software Craftsman


  1. ตำแหน่งไหนบ้างที่ใช้ UX แล้วงานลดลง

Software Company

  1. Don’t Destroy Your Dev Team By Growing

    9 women and 1 month do not a baby make

    Junior engineers also don’t become senior engineers in a vacuum.

  2. Coding is boring, unless…

    If a developer starts feeling too comfortable or too specialized, it’s time to rotate.

    Knowing exactly what to code before coding transforms an intellectual and creative process into a mechanical process; in other words, it turns developers into code monkeys.

  3. How Much For This Software?

    To summarize, this is wrong (because there is no “there”): Hey driver, how much will it cost to get there? And this is right: Hey driver, how much do you charge per mile, and do you have a map?

Make your open sources

  1. How to contribute to large open source projects like Docker (LinuxCon 2015)
  2. Open Source Development: a few guidelines
  3. Contributing to Big Bad Open Source
  4. How To Write A Great README
  5. 8 New Steps for Fixing Other People’s Code
  6. Code Review
  7. Open Source Protocol


  1. Awesome Awesomeness
  2. How to name things: the hardest problem in programming
  3. How to Hire a Developer
  4. Function vs Method vs Procedure
  5. Terrible Code or Cyber Terrorism - Which Will Kill You Faster
  6. RubyConf 2015 - Hacking Spacetime for a Successful Career by Brandon Hays

    Vision: Industy/Socienty Connection: People Technical skill: computer

    Entrepreneur: Invention & Vision Manager: People & Strategy Technician: Tools & Tactics

  7. WATCH THIS IF YOU WANT TO BECOME A WEB DEVELOPER! - Web Development Career advice
  8. What is a Full Stack developer?
  9. สร้างเว็บอย่าง Wongnai กับโจทย์ล้านแปดที่ต้องแก้ (ตอนที่ 1)