What Skills Do You Need to Become a Great Software Architect?
This comprehensive guide outlines the philosophical mindset, core competencies, technical knowledge, architectural principles, and essential tools that aspiring software architects should master to build robust, scalable, and secure systems in modern IT environments.
Introduction
The article begins with classic philosophical questions—"Who am I? Where do I come from? Where am I going?"—and reframes them for aspiring architects: identifying one’s role, defining responsibilities, and building a personal knowledge system.
Three Core Questions for Architects
Who am I and where do I fit?
What should I do as an architect?
How should I construct my knowledge framework?
These questions lead to a practical methodology: set goals, devise methods (plans), and execute actions.
General Skill Checklist
Work Methodology : goal setting, planning, execution, communication, responsibility, teamwork, continuous learning, and self‑assessment.
Thinking Structures : Pyramid Principle, Structured Thinking, Systems Thinking.
Documentation : proficiency with Excel and PowerPoint.
Collaboration Tools : Trello‑like platforms, Slack, WeChat, regular meetings.
Communication and Business Understanding of industry and company logic.
Project Management : architecture reviews, code standards, code review, Kanban, Scrum, Agile, XP, pair programming, FMEA.
Professional Skill Checklist
Fundamental Knowledge
Computer fundamentals, operating systems (processes, threads, memory), networking (TCP/IP, HTTP, socket programming).
Programming Languages
Java – core libraries, exceptions, JVM tuning, concurrency, multithreading.
PHP – exception handling, core framework knowledge, deep kernel insights.
Software Design
High‑quality coding: reusability, low coupling, extensibility, maintainability, performance, security.
Object‑oriented design: MVC, UML, design patterns, refactoring.
R&D Capability
Waterfall model, agile mindset, rapid iteration, wiki updates.
Security Knowledge
Web security (XSS, SQL injection, DDoS), HTTPS, vulnerability mitigation, recommended books.
Linux & Operations
Monitoring, CI with Jenkins, automation tools (Ansible, SaltStack), virtualization (KVM, VM), containers (Docker), OpenStack, DevOps.
Databases
Fundamentals, three normal forms, MySQL internals and optimization, storage engines (InnoDB, MyISAM), NoSQL (Redis, MongoDB).
Common Applications
Web servers (Nginx, OpenResty, Apache, Tomcat, Jetty), message queues (RabbitMQ, RocketMQ, ActiveMQ, Kafka, Redis, ZeroMQ), RPC frameworks (Dubbo, Thrift, gRPC), load‑balancing algorithms, DNS load balancing, HAProxy, Keepalived.
Performance & Big Data
Performance optimization methodology, capacity planning, CDN, connection pools, Hadoop, Storm, Kafka Streams.
Engineering Practices
Maven, Git, Jenkins.
Architecture Fundamentals
Evolution Stages
From single‑server LAMP to multi‑tier deployments, caching, clustering, read/write splitting, reverse proxies, CDNs, distributed filesystems, and micro‑service decomposition.
Architecture Patterns
Layered (application, service, data), vertical slicing, distributed services, caching, asynchronous messaging, redundancy (cold/hot standby), automation (deployment, testing, monitoring, failover).
Core Architectural Elements
Performance (frontend, application, database optimization), availability (redundancy, load balancing, backups, auto‑release, gray‑release, monitoring), scalability (cluster, load balancing, cache distribution), extensibility (open‑closed principle, modular design), security (XSS, SQL injection, CSRF, firewalls, SSL).
Architecture Design Principles
Redundancy
Rollback
Monitoring
Fault isolation
Independent deployment
Statelessness
Mature technology selection
Asynchronous design
Disable unnecessary features
Service degradation
Rate limiting
Horizontal scaling
Access Layer Design
DNS round‑robin, static/dynamic separation, LVS/NGINX reverse proxy, CDN, security measures (DNS hijacking protection, rate limiting, anti‑scraping).
Application Layer Design
Communication mechanisms: RPC, MQ, asynchronous processing, connection pools, configuration centers.
Database Layer Design
High‑availability setups: dual‑master, master‑slave sync, read/write splitting, sharding.
Classic Internet Company Architectures
Examples from Google, Facebook, eBay, Amazon, Weibo, Baidu, Alibaba, Tencent, Meituan, NetEase, covering distributed databases, file systems, high‑availability clusters, Docker/containerization, front‑end, real‑time communication, logging, messaging, DevOps, AI/ML, performance optimization, and financial payment systems.
Curated Tools & Resources (GitHub)
Technical Sites
Hacker News, Reddit programming, MSDN, InfoQ, OSChina, 51CTO, Cnblogs, StackOverflow, GitHub, OpenStack e‑books.
Recommended Books
Human Resource Management, Mythical Man‑Month, Code Complete, The Art of Computer Programming, The Pragmatic Programmer, Effective C++, TCP/IP Illustrated, Unix Programming Art, etc.
Platform Tools (Open Source)
Redmine/Trac, Jenkins, Sonar, Git, SVN, GitLib/Gitorious, GitBook, Travis CI, Selenium, OpenQA, Puppet, Nagios/Icinga, Ganglia, fleet.
Crawlers
PhantomJS, berserkJS, SlimerJS, CasperJS, Selenium.
Web Server Performance / Load Testing
http_load, webbench, ab, Siege, squid, Nginx, Node.js load balancers, Piwik, ClickHeat, HAProxy, ElasticSearch, PageSpeed, YSlow, HAR Viewer, Protractor.
Front‑End Tools
Grunt, Sea.js, Knockout.js, Angular.js, Highcharts, Flot, Raw, Rickshaw, JavaScript InfoVis Toolkit, PDF.js, ACE, CodeMirror, NProcess, impress.js, Three.js, Hightopo, jQuery DataTables, Raphaël.
Source: https://blog.csdn.net/hguisu/article/details/49445263
Signed-in readers can open the original source through BestHub's protected redirect.
This article has been distilled and summarized from source material, then republished for learning and reference. If you believe it infringes your rights, please contactand we will review it promptly.
IT Architects Alliance
Discussion and exchange on system, internet, large‑scale distributed, high‑availability, and high‑performance architectures, as well as big data, machine learning, AI, and architecture adjustments with internet technologies. Includes real‑world large‑scale architecture case studies. Open to architects who have ideas and enjoy sharing.
How this landed with the community
Was this worth your time?
0 Comments
Thoughtful readers leave field notes, pushback, and hard-won operational detail here.
