# Design

### Design Thinking & Principles
#### Ten Principles of Good Design (Dieter Rams)
https://sharing.ia.net/presenter/4facc352d646499b9b8d3bb6c2fbad2b/view

Dieter Rams 认为好的设计应该是：

1. **Innovative** - 创新。技术发展总是为创新设计提供新机会。
2. **Useful** - 有用。产品不仅要满足功能标准，还要满足心理和美学标准。
3. **Aesthetic** - 美观。产品的美学质量与其有用性密不可分。
4. **Understandable** - 易懂。好的设计能让产品自己说话，最好的设计是不言自明的。
5. **Unobtrusive** - 不显眼。产品是工具，不是装饰品或艺术品。
6. **Honest** - 诚实。不夸大产品的创新、功能或价值。
7. **Long-lasting** - 持久。避免时尚，因此不会显得过时。
8. **Thorough down to the last detail** - 极致细节。没有什么是随意或偶然的。
9. **Ecological** - 环保。设计为环境保护做贡献。
10. **Minimal** - 少即是好。专注于本质，回归纯净与简单。

#### Inclusive Design Principles
https://inclusivedesignprinciples.org/

包容性设计原则「以人为先」。满足人的短暂需要、长期需要、特定情形的需要，包括残疾人乃至其他身体心智健全的人。

原则：
1. 提供合适的体验
2. 考虑具体情况
3. 保持一致
4. 提供控制方法
5. 提供选择
6. 对不同优先级的内容进行区分
7. 添加值

### UI/UX Design
#### 5 Habits to Become a Better UI/UX Designer
https://uxplanet.org/5-habits-to-become-a-better-ui-ux-designer-2e250e296885

1. Sharpen your analogical problem-solving skills - 提高解决类比问题的能力。
2. Get enough quality sleep - 充足高质量的睡眠。
3. Practice. Practice. Practice - 练习，练习，再练习。
4. Find a place of solitude - 寻找一处较少人的环境。
5. Stop multi-tasking - 停止多任务处理。

> High-Quality Work = Time Spent x Level of Focus.
> -- Deep Work by Cal Newport

#### Learn Modern Design
推荐书籍：
1. CSS in Depth
2. Web Design Playground
3. Laws of UX
4. Basics of Web Design: HTML5 & CSS
5. CSS Secrets: Better Solutions to Everyday Web Design Problems
6. Designing for the Digital Age
7. Lean UX: Designing Great Products with Agile Teams
8. Learning Web Design
9. UX for Beginners

其他资源：
1. [How to Learn Web Design: The Ultimate Guide](https://www.ramotion.com/blog/web-design-guide/)
2. [30 Tips to Learn Web Design in 30 Days](https://designshack.net/articles/business-articles/learn-web-design-in-30-days/)
3. [Learning Modern Web](https://modern-web.dev/guides/)

#### Figma Learning
[Learn Design with Figma](https://www.figma.com/resources/learn-design/getting-started/)

设计师在设计时，注意三点：
1. business - 商业
2. readability - 可读性
3. usability - 可用性

什么是平面设计？不断的练习造就好的设计。

设计思维和伦理：聚焦于人，共情。

可访问性和包容性。

### RESTful API Design
设计 RESTful API 的基本原则和最佳实践：

1. **Use HTTP Methods Appropriately** - 使用标准 HTTP 方法（GET, POST, PUT, DELETE）
2. **Resource-Oriented** - 围绕资源组织 API，使用名词而不是动词
3. **Use URIs to Identify Resources** - 使用层级 URI 表示资源关系，如 `*users*{userId}/orders`
4. **HTTP Status Codes** - 使用合适的 HTTP 状态码（200 OK, 201 Created, 404 Not Found, 400 Bad Request）
5. **Consistent and Predictable** - 保持 API 设计的一致性和可预测性
6. **Stateless** - 每个请求包含所有必要信息，不维护客户端状态
7. **HATEOAS** - 在响应中提供超媒体链接，引导客户端进行下一步操作
8. **Support Content Negotiation** - 使用 `Accept` 头支持内容协商
9. **Versioning** - 对 API 进行版本管理
10. **Security** - 实现适当的认证和授权机制

### Programming Design Philosophy
#### vgod: 追求神乎其技的程式設計之道
https://vgod.medium.com/追求神乎其技的程式設計之道-2022重編版-7cccc3c68f1e

> 写程式是一条无止境的道路，不只是科学和工程，更是一种艺术。

编程是一门无止境的道路，不仅是科学和工程，更是一种艺术。好的程序设计需要不断练习、反思和提升。

### Design Tools
#### Design on Linux
原型工具：
- [Figma Linux](https://github.com/Figma-Linux/figma-linux)（用不了）
- Akira
- Alva
- [Miro](https://miro.com/app/)

矢量设计：
- [Inkscape](https://inkscape.org/)

图片处理：
- [GIMP](https://www.gimp.org/)
- [Photopea](https://www.photopea.com/)（Web App）
- [Krita](https://krita.org/en)

字体管理：KDE Font Management

图标：[Font Awesome](https://fontawesome.com/icons?d=gallery&m=free)

参考：https://blog.prototypr.io/design-on-linux-figma-fontbase-10-other-tools-ec2d949cbb69

### Data Visualization
#### Delightful Data Visualization Examples
https://www.smashingmagazine.com/2022/06/web-design-done-well-delightful-data-visualization-examples/

有数据可视化学习资料。


相关：[[coding|coding]]

相关：[[software-engineering-soft-parts|software-engineering-soft-parts]]
