records

Tech Lead's markdown part, to record tech, debt, architecture, records etc. Tech Lead 的 markdown 工作集:技术、技术债、架构、架构记录……。

Tech Records

A Technology’s Records for Tech Lead to research

Tech Vision

Explain

Explain(Chinese)

关键因素 描述
对于 xxx
我们的 xxx
是一个 xxx
它可以 xxx
但它不同于 xxx
它的优势是 xxx

示例

关键因素 描述
对于 想拆解单体前端应用的团队
我们的架构 微应用化
是一个 类微前端架构
它可以 在开发环境将应用拆分成一个个的模块化应用,在构建时以单体的形式构建
但他不同于 微前端架构
它的优势是 实施成本低、技术难度小、维护成本低

Tech Debt Records

Explain

Explain(English)

Technical debt (also known as design debt[1] or code debt) is a concept in software development that reflects the implied cost of additional rework caused by choosing an easy solution now instead of using a better approach that would take longer.

Title Description
Tech Debt ID Records ID
Date date
Reporter reporter
Title Name to identified tech debt
Description description detail of tech debt
Alternatives possible alternative solutions
Rationale reason to fix tech debt
Technical debt quadrants
  Reckless Prudent
Deliberate “We don’t have time for design” “We must ship now and deal with consequences (later)”
Inadvertent “What’s Layering?” “Now we know how we should have done it”

from: https://en.wikipedia.org/wiki/Technical_debt

Explain(Chinese)

技术负债(英语:Technical debt),又译技术债,也称为设计负债(design debt)、代码负债(code debt),是编程及软件工程中的一个比喻。指开发人员为了加速软件开发,在应该采用最佳方案时进行了妥协,改用了短期内能加速软件开发的方案,从而在未来给自己带来的额外开发负担。

技术债务的四象限分类
  鲁莽Reckless 谨慎Prudent
故意Deliberate 我们没有时间做设计”We don’t have time for design” 我们必须马上交付,后果以后再说”We must ship now and deal with consequences (later)”
疏忽Inadvertent 什么是分层(设计)?”What’s Layering?” 现在我们才知道该如何做了”Now we know how we should have done it”

from: https://zh.wikipedia.org/wiki/%E6%8A%80%E6%9C%AF%E8%B4%9F%E5%80%BA

usecases

Architeture Decision Records

Explain

Explain

Title Description
Title These documents have names that are short noun phrases. For example, “ADR 1: Deployment on Ruby on Rails 3.0.10” or “ADR 9: LDAP for Multitenant Integration”
Context This section describes the forces at play, including technological, political, social, and project local. These forces are probably in tension, and should be called out as such. The language in this section is value-neutral. It is simply describing facts.
Status A decision may be “proposed” if the project stakeholders haven’t agreed with it yet, or “accepted” once it is agreed. If a later ADR changes or reverses a decision, it may be marked as “deprecated” or “superseded” with a reference to its replacement.
Decision This section describes our response to these forces. It is stated in full sentences, with active voice. “We will …”
Consequences This section describes the resulting context, after applying the decision. All consequences should be listed here, not just the “positive” ones. A particular decision may have positive, negative, and neutral consequences, but all of them affect the team and project in the future.

Explain(Chinese)

标题 说明
标题 这些文件的名称是短名词短语。例如,“ADR 1: Deployment on Ruby on Rails 3.0.10” 或 “ADR 9: LDAP for Multitenant Integration
上下文 这一节描述了当前的技术、政治、社会和项目。这些力量可能处于紧张状态,应该这样说。本节中的语言是价值中立的,只用于描述事实。
决策 这一节描述我们对这些力量的回应。这是充分的句子,以及积极的声音。 “我们会…”
状态 如果项目利益相关方尚未同意,或者一旦达成一致,则 “决定” 可能被 “提议”。如果以后的 ADR (架构决策记录)更改或撤消决定,则可能会将其标记为 “已弃用” 或 “已取代”,并参考其替换。
后果 这部分描述了应用决策后产生的上下文。所有的后果应该列在这里,而不仅仅是 “积极的”。一个特定的决策可能会产生积极的、消极的和中性的后果,但是它们都会影响未来的团队和项目。

Clean Architeture Usecases Records

Example

Source: https://fullstackmark.com/post/11/better-software-design-with-clean-architecture

Title Register for courses
Description Student accesses the system and views the courses currently available for him to register. Then he selects the courses and registers for them.
Primary Actor Student
Preconditions - Student is logged into system
- Student has not previously enrolled or registered
- Student cannot register within 5 days of course start date
Postconditions Student is registered for courses
Main Success Scenario 1. Student selects “Register New Courses” from the menu.
2. System displays list of courses available for registering.
3. Student selects one or more courses he wants to register for.
4. Student clicks “Submit” button.
5. System registers student for the selected courses and displays a confirmation message.
Extensions (2a) No courses are available for this student.
1. System displays error message saying no courses are available, and provides the reason & how to rectify if possible.
2. Student either backs out of this use case, or tries again after rectifying the cause.
(5a) Some courses could not be registered.
1. System displays message showing which courses were registered, and which courses were not registered along with a reason for each failure.
(5b) None of the courses could be registered.
1. System displays message saying none of the courses could be registered, along with a reason for each failure.