---
name: software-development
description: Best practices for software development including coding, testing, workflows, and CI/CD
goal: พัฒนา software ตาม best practices
outcome: Software development มีประสิทธิภาพและคุณภาพ
---

# Software Development

## When to Apply

ใช้ Skill นี้เมื่อพัฒนา software

- เมื่อเขียน code ที่ maintainable และ readable
- เมื่อ implement testing strategies
- เมื่อ setup CI/CD pipelines
- เมื่อ follow coding standards

## Rules

| Priority | Impact | Reference | Name | Description | Prefix | Condition |
| :--- | :--- | :--- | :--- | :--- | :--- | :--- |
| 1 | `HIGH` | [dev-code-quality.md](./rules/dev-code-quality.md) | Code Quality | Code quality และ readability | `dev-` | เมื่อเขียน code |
| 2 | `HIGH` | [dev-error-handling.md](./rules/dev-error-handling.md) | Error Handling | Error handling และ logging | `dev-` | เมื่อ handle errors |
| 3 | `HIGH` | [dev-naming-conventions.md](./rules/dev-naming-conventions.md) | Naming Conventions | Naming conventions ที่ consistent | `dev-` | เมื่อตั้งชื่อ |
| 4 | `HIGH` | [dev-testing-strategies.md](./rules/dev-testing-strategies.md) | Testing Strategies | Testing strategies และ best practices | `dev-` | เมื่อทดสอบ |
| 5 | `HIGH` | [dev-unit-testing.md](./rules/dev-unit-testing.md) | Unit Testing | Unit testing สำหรับ functions และ modules | `dev-` | เมื่อเขียน tests |
| 6 | `HIGH` | [dev-integration-testing.md](./rules/dev-integration-testing.md) | Integration Testing | Integration testing สำหรับ APIs และ databases | `dev-` | เมื่อทดสอบ integration |
| 7 | `HIGH` | [dev-git-workflow.md](./rules/dev-git-workflow.md) | Git Workflow | Git workflow และ commit conventions | `dev-` | เมื่อใช้ git |
| 8 | `HIGH` | [dev-code-review.md](./rules/dev-code-review.md) | Code Review | Code review process และ checklist | `dev-` | เมื่อ review code |
| 9 | `HIGH` | [dev-ci-cd.md](./rules/dev-ci-cd.md) | CI/CD | CI/CD pipelines และ automation | `dev-` | เมื่อ setup CI/CD |

## Knowledge

| Reference | Name | Description | Prefix |
| :--- | :--- | :--- | :--- |

## Overview

### Rules

แต่ละไฟล์ Rule ประกอบด้วย:

- เหตุผล (Why)
- ตัวอย่างที่ไม่ดี (Anti-patterns)
- ตัวอย่างที่ดี (Best practices)
- กฎที่ต้องปฏิบัติตาม (Rules)
- ผลกระทบถ้าไม่ทำตาม (Impact)
- เอกสารอ้างอิง (References)

### Knowledge

แต่ละไฟล์ Knowledge ประกอบด้วย:

- Overview: ภาพรวมของ topic
- Key Concepts: concepts สำคัญที่ต้องรู้
- Examples: ตัวอย่างการใช้งาน
- Best Practices: best practices ที่ควรทำตาม
- References: ลิงก์ไปยังแหล่งข้อมูลต้นฉบับ

## How to Use

แต่ละไฟล์ Rule อธิบายถึง:

- เหตุผลที่ต้องทำตามกฎ
- ตัวอย่างที่ไม่ดีและดี
- กฎที่ต้องปฏิบัติตาม
- ผลกระทบถ้าไม่ทำตาม
- เอกสารอ้างอิง

แต่ละไฟล์ Knowledge อธิบายถึง:

- ภาพรวมของ topic
- Concepts สำคัญที่ต้องรู้
- ตัวอย่างการใช้งาน
- Best practices ที่ควรทำตาม
- เอกสารอ้างอิง

## References

- [Software Development Best Practices](https://example.com)
