Giter VIP home page Giter VIP logo

it's Introduction

程序员学习和实战指南

  • 千里之行始于足下 老骥伏枥志在千里

  • 知行合一 [学而不练 纸上谈兵 练而不学 殆而不知]

    • 马如林积累4年本科,3年硕士和15年+的一线编码设计架构研发经验,经历无数失败和煎熬,精心打造的一款AI记单词在线产品,一款能让用户看到所有内容的产品,包括全部源码,数据库,配置,文档和讲解,并随着产品不断迭代持续更新相关内容,希望用户通过这个产品的学习和实战能找到好工作或能更好的工作,所需技术基础,学习路径,详细配置等内容请参考目录进行查阅学习(实际内容肯定远超AI记单词的内容,毕竟一个产品不可能用到所有的技术,但是有些技术在别的场景下可能被使用,另外职场,简历,面试,考证,创业等也是我们经常遇到困惑的地方,所以补充了很多很多)
  • 支持一下作者,加入星球会员☟

    • 程序员学习和实战指南知识星球
      • 为了作者能提供更好的服务,也为了你更好的学习
      • 目前不提供核心代码,毕竟这是个商业产品
      • 模拟产品待开发中,会提供代码

愿景

  • 提供程序员学习全面知识图谱
  • 提升程序员的知识面广度和深度
  • 通过项目实战做到知行合一,并不断迭代,取得进步
  • 项目实战积累经验,进行流程化,模块化,工具化等标准化建设,提高生产力,降低出错概率,提升项目成功率
  • 其他杂项内容(面试经验、职业发展、创业、招聘、培训等)

项目

目录

导论

概述

使用说明

  • [经典]是强烈推荐,必读必看。

  • [官方]是官方权威标记,必读必看。

  • [过时]是以前使用技术,现在可能不再使用,但是老系统可能使用。

  • 资源标签

    • [文章]
    • [图书]
    • [视频]
    • [源码]
    • [工具]
    • [网站]
    • [星级]
  • TODO: 是未完待续的意思。

心得体会

  • 一切都是逻辑。
  • 网站计算机图书销量排序结合豆瓣评分基本可以判断一本书的质量。
  • 视频看播放量和弹幕等基本也可以判断其质量,国外的讲得好的会更原汁原味些,一般来说相对更好些。

经典名言

  • Talk is cheap, show me code.(知易行难) -- Linus Torvalds(Linux创始人)
  • 源码面前了无秘密。-- 侯捷 《STL源码剖析》作者
  • 不要重复发明轮子。-- Rod Johnson(Spring Framework创始人)
  • 过早的优化是万恶之源。-- Donald Knuth(1974年图灵奖)
  • 用户为中心。
  • 没有银弹。-- Fred Brooks(1999年图灵奖)
  • 从重构到模式。-- Joshua Kerievsky(本书荣获2005年《软件开发》杂志图书通用类的效率大奖)
  • 当一头牛拉不动车时,很少有人去找一头更大更强壮的牛,而是找来更多的牛一起拉。 -- 《Hadoop权威指南》
  • 一个字:拆。
  • 256K is OK.(256K应该足够了。) -- Bill Gates(比尔 盖茨)

内容主要是大学所需要学习的内容,入门级的放在这里,实际工作中需要的高级内容放在技术实战中。

Emacs和VIM:神的编辑器和编辑器之神。

Socket是为了方便使用TCP或UDP而抽象出来的一层,位于应用层和传输控制层之间的一组接口,提供一套调用TCP/IP协议的API。

Wireshark 网络封包分析软件。

图灵:计算机之父。艾伦·麦席森·图灵(Alan Mathison Turing,1912年6月23日-1954年6月7日),英国数学家、逻辑学家,被称为计算机之父,人工智能之父。

互联网(Web)由网站组成(WebSite),网站又由网页(WebPage)组成,而网页的实现一般由HTML、CSS和JavaScript实现,三者的关系有一个形象的比喻:

名称 描述
HTML 名词
CSS 形容词
JavaScript 动词

网页标记语言标准。

HTML is the standard markup language for Web page.

HTML文档的样式语言。

CSS is the language we use to style an HTML documen.

JavaScript (JS) 是一种轻量级、解释性或即时编译的函数式编程语言。

JavaScript (JS) is a lightweight, interpreted, or just-in-time compiled programming language with first-class functions.

JavaScript运行环境。

Node.js JavaScript runtime.

TypeScript TypeScript is JavaScript with syntax for types.

TypeScript is a strongly typed programming language that builds on JavaScript, giving you better tooling at any scale.

Jest is a delightful JavaScript Testing Framework with a focus on simplicity.

It works with projects using: Babel, TypeScript, Node, React, Angular, Vue and more!

JQuery is a fast, small, and feature-rich JavaScript library.

React is a JavaScript library for building user interfaces.

Vue The progressive JavaScript framework.

Angular AngularJS is a JavaScript framework.(AngularJS是一个JavaScript框架)

Bootstrap是一个用于使用HTML,CSS和JS进行开发的开源工具包。

Bootstrap is an open source toolkit for developing with HTML, CSS, and JS.

Token就是一种用于身份验证的机制,基于这种机制,应用不需要在服务端保留用户的认证信息或者会话信息,可实现无状态、分布式的Web应用授权,为应用的扩展提供了便利。目前主流使用的用户认证方法。

跨域问题(CORS)比较常见,原因在于出于安全性,浏览器限制脚本内发起的跨源HTTP请求。例如,XMLHttpRequest和 Fetch API遵循同源策略。这意味着使用这些API的Web应用程序只能从加载应用程序的同一个域请求HTTP资源,除非响应报文包含了正确CORS响应头。

可扩展标记语言。

Extensible Markup Language.

超文本传输协议。

Hypertext Transfer Protocol.

IntelliJ

Eclipse The Platform for Open Innovation and Collaboration.

Spring

MyBatis

MyBatis-Plus(简称 MP)是一个MyBatis(opens new window)的增强工具,在MyBatis的基础上只做增强不做改变,为简化开发、提高效率而生。

Hibernate

Struts

典型应用Dubbo。

Storm Apache Storm is a free and open source distributed realtime computation system.

Apache Storm是一个免费的开源分布式实时计算系统。

ImageMagick Use ImageMagick® to create, edit, compose, or convert bitmap images.

使用ImageMagick®创建,编辑,撰写或转换位图图像。

FFmpeg

Redis Redis is an open source (BSD licensed), in-memory data structure store, used as a database, cache and message broker.

Redis是一个开源(BSD许可),内存数据结构存储,用作数据库,缓存和消息代理。

MemCache A distributed memory object caching system.

分布式内存对象缓存系统。

RabbitMQ RabbitMQ is the most widely deployed open source message broker.

Kafka A distributed streaming platform.

ZeroMQ Distributed Messaging.

Elasticsearch is a distributed, RESTful search and analytics engine capable of solving a growing number of use cases. As the heart of the Elastic Stack, it centrally stores your data so you can discover the expected and uncover the unexpected.

Solr is the popular, blazing-fast, open source enterprise search platform built on Apache Lucene™.

企业级搜索平台基于Lucene的封装。

Lucene The goal of Apache Lucene and Solr is to provide world class search capabilities.

Quartz open source job scheduling library that can be integrated within virtually any Java application - from the smallest stand-alone application to the largest e-commerce system. Quartz can be used to create simple or complex schedules for executing tens, hundreds, or even tens-of-thousands of jobs; jobs whose tasks are defined as standard Java components that may execute virtually anything you may program them to do. The Quartz Scheduler includes many enterprise-class features, such as support for JTA transactions and clustering.

A distributed scheduled job framework, based on Quartz and Zookeeper.

JUnit A programmer-oriented testing framework for Java.

面向程序员的Java单元测试框架。

JMeter The Apache JMeter™ application is open source software, a 100% pure Java application designed to load test functional behavior and measure performance. It was originally designed for testing Web Applications but has since expanded to other test functions.

Apache JMeter™应用程序是开源软件,是一种100%纯Java应用程序,旨在加载测试功能行为和测量性能。 它最初是为测试Web应用程序而设计的,但后来扩展到其他测试功能。

The Apache™ Hadoop® project develops open-source software for reliable, scalable, distributed computing.

Hive The Apache Hive ™ data warehouse software facilitates reading, writing, and managing large datasets residing in distributed storage using SQL.

Apache Hive™数据仓库软件有助于使用SQL读取,编写和管理驻留在分布式存储中的大型数据集。)

HBase 建立在Hadoop上的分布式数据库。

Apache HBase™ is the Hadoop database, a distributed, scalable, big data store.

Cassandra The Apache Cassandra database is the right choice when you need scalability and high availability without compromising performance.

Spark A unified analytics engine for large-scale data processing.

用于大规模数据处理的统一分析引擎。

Ceph

Presto is a distributed SQL query engine for big data.

大数据查询引擎。

Kylin Apache Kylin™ is an open source Distributed Analytics Engine designed to provide SQL interface and multi-dimensional analysis (OLAP) on Hadoop/Spark supporting extremely large datasets, original contributed from eBay Inc.

Apache Kylin™是一个开源的分布式分析引擎,旨在为支持极大型数据集的Hadoop / Spark提供SQL接口和多维分析(OLAP),原创由eBay Inc.提供。

Mahout For Creating Scalable Performant Machine Learning Applications.

用于创建可扩展高性能的机器学习应用程序。

Zookeeper A high-performance coordination service for distributed applications.

Zookeeper提供分布式同步功能,在今天的分布式系统中有广泛使用。

  • 四要素
    • 微服务
    • 容器化
    • DevOps
    • 持续交付

Docker Build, Manage and Secure Your Apps Anywhere.

随处构建,管理和保护您的应用程序。

搭建自己的Docker镜像仓库。

Kubernetes is an open-source system for automating deployment, scaling, and management of containerized applications.

Kubernetes是一个开源系统,用于自动化容器化应用程序的部署,扩展和管理。

就是开发(Development)、测试(QA)、运维(Operations)这三个领域的合并。

Git is a free and open source distributed version control system designed to handle everything from small to very large projects with speed and efficiency.

Git是一个免费的开源分布式版本控制系统,旨在快速,高效地处理从小型到大型项目的所有事务。

约定式提交

Gitlab is the leading integrated product for modern software development. Connecting issue management, version control, code review, CI, CD, and monitoring.

GitLab是现代软件开发的领先集成产品。 连接问题管理,版本控制,代码审查,CI,CD和监控。

Bitbucket is more than just Git code management. Bitbucket gives teams one place to plan projects, collaborate on code, test and deploy.

SnailSVN

CICD:持续集成(CI),持续交付(CD)是指持续集成交付部署,是一套流程实现软件的构建测试部署的自动化。

Jenkins The leading open source automation server, Jenkins provides hundreds of plugins to support building, deploying and automating any project.

领先的开源自动化服务器,Jenkins提供数百个插件来支持构建,部署和自动化任何项目。

Nexus Maven私服。

SonarCube The leading product for continuous code quality.

连续代码质量的领导产品。

基本网站Nginx即可,如果要扩展LVS或者F5/Array的,应该是比较中大型网站了,应该有专业的运维和网络工程师了,正常架构等人员了解即可。

Nginx Nginx [engine x] is an HTTP and reverse proxy server, a mail proxy server, and a generic TCP/UDP proxy server, originally written by Igor Sysoev.

Nginx [engine x]是一个HTTP和反向代理服务器,一个邮件代理服务器和一个通用的TCP / UDP代理服务器,最初由Igor Sysoev编写。

HAProxy

微服务架构(通常简称为微服务)是指开发应用所用的一种架构形式。通过微服务,可将大型应用分解成多个独立的组件,其中每个组件都有各自的责任领域。在处理一个用户请求时,基于微服务的应用可能会调用许多内部微服务来共同生成其响应。

SpringBoot Spring Boot makes it easy to create stand-alone, production-grade Spring based Applications that you can "just run".

Spring Boot可以轻松创建独立的,生产级的基于Spring的应用程序,您可以“即刻运行”。

SpringCloud

Spring Cloud Gateway This project provides a library for building an API Gateway on top of Spring WebFlux. Spring Cloud Gateway aims to provide a simple, yet effective way to route to APIs and provide cross cutting concerns to them such as: security, monitoring/metrics, and resiliency.

Zuul is a gateway service that provides dynamic routing, monitoring, resiliency, security, and more.

Zuul是一种网关服务,提供动态路由,监控,弹性,安全性等。

Nacos 一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台。

  • 作为配置中心使用
  • 服务的注册和发现

Eureka AWS Service registry for resilient mid-tier load balancing and failover.

服务注册,用于弹性中间层负载平衡和故障转移。

使用http的header,存放traceId进行全链路跟踪。使用MDC设置traceId|localId

  • rest template
  • feign client

Zipkin Zipkin is a distributed tracing system.

Zipkin是一种分布式跟踪系统。

PinPoint Pinpoint is an open source APM (Application Performance Management) tool for large-scale distributed systems written in Java.

Pinpoint是一个开源的APM(应用程序性能管理)工具,适用于用Java编写的大型分布式系统。

CAT Central Application Tracking.

SkyWalking

Application performance monitor tool for distributed systems, especially designed for microservices, cloud native and container-based (Kubernetes) architectures.

BTrace BTrace - a safe, dynamic tracing tool for the Java platform.

BTrace - Java平台的安全动态跟踪工具。

Hystrix Hystrix is a latency and fault tolerance library designed to isolate points of access to remote systems, services and 3rd party libraries, stop cascading failure and enable resilience in complex distributed systems where failure is inevitable.

Hystrix是一个延迟和容错库,旨在隔离对远程系统,服务和第三方库的访问点,停止级联故障,并在复杂的分布式系统中实现弹性,在这些系统中,故障是不可避免的。

提供Feign的降级处理功能

Sentinel

As distributed systems become increasingly popular, the reliability between services is becoming more important than ever before. Sentinel takes "flow" as breakthrough point, and works on multiple fields including flow control, traffic shaping, circuit breaking and system adaptive protection, to guarantee reliability and resilience for microservices.

An open platform to connect, manage, and secure microservices.

  • 连接(Connect):智能控制服务之间的调用流量,能够实现灰度升级、AB 测试和红黑部署等功能
  • 安全加固(Secure):自动为服务之间的调用提供认证、授权和加密。
  • 控制(Control):应用用户定义的 policy,保证资源在消费者中公平分配。
  • 观察(Observe):查看服务运行期间的各种数据,比如日志、监控和 tracing,了解服务的运行情况。

Redmine Redmine is a flexible project management web application.

Redmine是一个灵活的项目管理Web应用程序。

Bugzilla is server software designed to help you manage software development.

Bugzilla是旨在帮助您管理软件开发的服务器软件。

Jira

DokuWiki DokuWiki是一个基于PHP开发的开源wiki引擎。它具有小巧、功能强大、灵活的特点,适合于中小团队和个人网站搭建知识库系统。

Confluence Confluence is content collaboration software that changes how modern teams work.

Confluence是内容协作软件,可以改变现代团队的工作方式。

PMP 美国项目管理工程师协会认证,全球认可,做项目管理的一定要学习。和国内软考的信息系统项目管理师考试雷同,考个国内的也可以,国外贵,但易考。

10大管理5个过程组47个过程域能比较好的管理和控制项目。

ISO

Postman

Postman is the only complete API development environment, for API developers.

API测试、Mock Servers功能和自动化测试。

Google API Design Guide

很多时候需要把内网对外进行访问,或者外网地址映射到内网地址的服务时,需要此类工具,有点黑科技。

比较简单好用。

自建梯子的好帮手。

使用极其简单,但是有时候不太稳定。

WordPress 是使用PHP语言开发的博客平台,用户可以在支持PHP和MySQL数据库的服务器上架设属于自己的网站。也可以把 WordPress当作一个内容管理系统(CMS)来使用。

Piwik

软考

OCJP(Oracle Certified Java Programmer),Oracle公司的Java工程师认证。通过该考试表明较好的掌握Java基础知识。

Mosquito Eclipse Mosquitto is an open source (EPL/EDL licensed) message broker that implements the MQTT protocol versions 3.1 and 3.1.1. Mosquitto is lightweight and is suitable for use on all devices from low power single board computers to full servers.

Eclipse Mosquitto是一个开源(EPL / EDL许可)消息代理,它实现了MQTT协议版本3.1和3.1.1。 Mosquitto重量轻,适用于从低功耗单板计算机到完整服务器的所有设备。

感谢

申明

如有侵权,联系必删。

赞助商

赞赏

请喝一杯

it's People

Contributors

rulinma avatar

Stargazers

 avatar  avatar

Watchers

 avatar

Forkers

zyl-ux

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.