Introduction

New command-line AI assistants like Aider, Gemini CLI, and Claude Code can now directly modify codebases. This article analyzes their core philosophies and architectures to help you choose the right tool for your workflow.

Core Design Philosophies

These assistants represent three distinct design philosophies for AI-driven coding, each with a different primary emphasis.

  • The Extensible Platform (Gemini CLI): A powerful coding assistant built as an extensible platform. While it has core skills in querying and editing code, its design equally emphasizes connecting to other services (like Google Search), custom tools, and other modalities to build powerful, integrated workflows.
  • The Collaborative Specialist (Aider): A structured pair programmer that operates in a tight feedback loop with the developer. Its focus is on the reliability and transparency of the code editing process itself.
  • The Agentic Assistant (Claude Code): A self-contained agent focused on a suite of pre-built, high-level developer skills. The primary value is in delegating common but complex tasks like debugging, refactoring, and test generation to a capable assistant.
阅读全文 »

Introduction

AI code agents are evolving beyond code suggestions and completions. Future advancements may enable them to write entire programs, handle tasks like software engineers, interpret PRDs, and collaborate to build software. Leveraging machine learning and natural language processing, these agents can enhance productivity, reduce bugs, and assist developers in learning new languages and frameworks. Seamless integration with development tools will make them indispensable in modern software development.

阅读全文 »

This article is written with the assistance of AI.

Introduction: The Dawn of the AI Agent Era

Artificial intelligence has made significant progress in recent years, moving from theory to practice. We’ve seen the rise of powerful language models capable of generating text, translating languages, and even writing different kinds of creative content. However, these models, impressive as they are, often operate in a limited context, performing specific tasks without a broader understanding or the ability to interact dynamically with their environment. This is where AI agents come in, promising to change how we use AI. This article takes a pragmatic look at the emerging world of AI agents, exploring their architecture, capabilities, evolution, and potential impact on the future of software engineering.

阅读全文 »

AI 时代的软件工程

软件开发的过程是对业务知识认知和理解的过程
软件开发的核心难度在于处理隐藏在业务模型中的复杂度

如何实现从 PRD 到线上代码?
定义领域概念
阐明架构原则/编码原则
定义用例
选择合适大小的模块让 AI 实现
明确定义模块的职责、接口、边界
标准化语言

I claim that you want to start communicating between independent modules no sooner than you absolutely HAVE to, and that you should avoid splitting things up until you really need to, because that communication complexity often swamps the complexity of the actual pieces involved in it.

Linux, 2003

架构的本质是管理复杂性

  1. 架构的本质是为了管理复杂性。复杂性的来源是当前的业务需求和未来变化的不确定性
  2. 架构的本质就是对系统进行有序化重构,不断减少系统的“熵”,使系统不断进化。
  3. 架构的本质就是对系统进行有序化重构,以符合当前业务的发展,并可以快速扩展。
阅读全文 »

题目

给你两个单词 word1 和 word2, 请返回将 word1 转换成 word2 所使用的最少操作数。
你可以对一个单词进行如下三种操作:

  • 插入一个字符
  • 删除一个字符
  • 替换一个字符
阅读全文 »

一个应用被称为 数据密集型 的,如果 数据是其主要挑战(数据量,数据复杂度或数据变化速度)—— 与之相对的是 计算密集型,即处理器速度是其瓶颈。

阅读全文 »

好架构的特点 by Martin

A good architecture allows major decisions to be DEFERRED!
A good architecture maximizes the number of decisions NOT made

设计架构时最容易犯得错误就是先关注细节,例如用什么数据库,用什么框架,但是这些都不是最重要的,架构最需要关注的是

  1. 系统存在的原因,背景,目的
  2. 系统在做什么,解决什么问题
  3. use cases
  4. 什么业务模型能更好的满足 use cases
阅读全文 »