Java简单来说是一门语言,Java能干什么? 网站:开发大,中,小型网站. 服务器端程序:企业级程序开发. APP:Android的APP基本使用Java开发. 云:Hadoop就是使用Java语言开发的. 其他:各大电商网站使用的搜索,基本是Apache的Solr改进,使用的Java语言开发的.类似这些的就数不胜数了.   可以说Java无所不能,在计算机各行各业都有广泛的使用.   为什么Java如此强大? 开源,标准,强大,健壮,安全,简单,跨平台,各大公司的支持,开发者的认可等.  …
​C语言介绍 C语言基本是每个编程人员必学的一面语言,很好掌握,是理解编程的关键.很多编程语言基于其编写或者基于此语言的衍生品编写. C语言是人机交互的一个基础语言之一,虽然是之一,单一般其实就是唯一. 偶尔用汇编 其他非C的我没见过,理论上是存在的.没有C之前大家用的,有了C之后估计就少了. 有了计算机操作基础,可以学习编程了,推荐从C语言开始学习,使用这本书进行学习<C程序设计语言>,此书是C语言的作者编写就知道是多么的权威了,同时此书有英文版本<C程序设计语言(英文版)>,建…
App架构师实践指南三之基础组件 1.基础组件库随着时间的增长,代码量的逐渐积累,新旧项目之间有太多可以服用的代码.下面是整理的公共代码库. 2.关于加密密钥的保护以及网络传输安全是移动应用安全最关键的内容,涉及密码学(用于加密.认证和鉴定的学科).常见的加密算法,主要分为对称加密算法.非对称加密算法和Hash算法.---对称加密算法.安全性取决于加密算法本身和密钥的私密性,相对于非对称加密算法,密钥管理比较难,速度快几个数量级,适合大数据量的加密处理,对称加密算法流程图如图6-6所示. ---…
JavaScript是什么? JavaScript是web开发必须学习的,ECMAScript是其规则来源. JavaScript的历史 Developed by Brendan Eich of Netscape, under the name of Mocha, then LiveScript, and finally JavaScript. 1995 - JavaScript 1.0 in Netscape Navigator 2.0 (Dec) 1996 - JavaScript 1.1…
Java Java是一面向对象语言 Write Once Run Anywhere Designed for easy Web/Internet applications, Mobile Widespread acceptance 参考图书: 下面的基本是Java学习推荐的. 参考视频学习网站: 1.零基础java视频教程(马士兵 )有多年工作经验的清华人,讲的非常不错,值得学习 2.Java零基础最全300集视频教程(高淇 ) 3.翁恺 用Java学编程 (翁恺) 老师的还是值得推荐的. 上面…
1. Linux基本环境 1.1 大数据Hadoop前置大纲讲解 1)Linux系统,基本命令 2)Java语言,JavaSE相关知识 3)MySQL基本的DML和DDL 1.2 常见Linux系统.安装VMWare及虚拟机 1)重要的网站,大数据领域,hadoop发行版本,有公司Cloudera http://archive.cloudera.com/cdh5 2)虚拟化工具VMWare (1)安装VMWare (2)创建虚拟机 (3)安装CentOS 6.5 操作系统 1.3 虚拟机网络配置…
JavaEE由一堆基础标准组成.JavaEE开发一般需要如下工具和掌握如下内容: Java环境 Eclipse或其他开发工具 Tomcat容器或类似软件 Jsp/Servlet/Web/JDBC的掌握和理解 数据库知识 其他 图书 <疯狂软件教育标准教材·轻量级Java EE企业应用实战(第4版):Struts 2+Spring 4+Hibernate整合开发(附光盘)> <J2EE Development without EJB> <J2EE设计开发编程指南> <…
Tomcat是大家常用的Java Web容器. 添物网使用的也是Tomcat. 官方网址: http://tomcat.apache.org/ 官方文档看看. 可以看的图书 <Tomcat权威指> 推荐一本讲Tomcat原理的图书: 深入剖析Tomcat(How Tomcat Works) 讲的特别好! Jetty也是推荐学习的web容器之一. Hadoop使用了内嵌的Jetty 另外也有weblogic和websphere等,不过一般人接触不到,最多jboss差不多了. 总结 对Tomcat…
2.5.1 MongoDB -- 介绍 mysql vs mongo 快速开始 mysql vs mongo 对比 mysql mongo 数据存储 table 二维表结构,需要预先定义结构 json 类文档,不需要预先定义结构.可随意新增或删除字段,新增字段不会对已存在的字段产生影响 查询语法 sql (structured query language) mongo 索引 如果不定义索引,则进行全表扫描 如果不定义索引,则进行全表扫描 集群 支持主从复制 内置副本集.分片.和自动选举 场景…
2.6.1 消息队列 -- 介绍 主要使用场景 队列的三种形式 消息队列的优点 主要使用场景 典型的异步处理 流量削锋 应用解耦 队列的三种形式 点对点 工作队列 发布与订阅 消息队列的优点 1.屏蔽异构平台的细节:发送方.接收方系统之间不需要了解双方,只需认识消息. 2.异步:消息堆积能力:发送方接收方不需同时在线,发送方接收方不需同时扩容(削峰). 3.解耦:防止引入过多的API给系统的稳定性带来风险:调用方使用不当会给被调用方系统造成压力,被调用方处理不当会降低调用方系统的响应能力. 4.…
2.7.1 敏捷开发 敏捷介绍 敏捷的起源 敏捷软件开发宣言 敏捷开发十二原则 生命周期对比 敏捷开发的特点 敏捷的发展 敏捷的核心 敏捷的起源 2001年,17个老头子在一起一边滑雪,一边讨论工作,制定了<敏捷软件开发宣言> 从60年代中期开始到20世纪末,软件行业得到了非常迅猛的发展,软件系统的规模和复杂度也越来越高,行业普遍面临不满足需求,永远无法交付等一系列严重的问题,史称"软件危机" 从长期积累的经验看,早期阶段的时间投入会影响到后期的经济支出,就是需求变化发生的…
2.7.3 Scrum 团队 理想的环境 团队章程 如何组建 Scrum 团队 产品待办事项列表 用户故事 敏捷开发流程 理想的环境 5-9人 100% 跨职能 在一起 自组织 自组织 目标 授权 沟通 可视化 辅导 奖励 要我做 => 我想做,我要做,我要做好 团队章程 团队价值观:速度与工作时间 工作协议:例如:"就绪"定义,"完成"定义 基础规则:例如:会议规则 团队规范:迟到.冲突 坦诚.高效沟通 包容 相互帮助 简洁.反馈.尊重 如何组建 Scrum…
Servlet是Java Web开发必须要掌握的. Servlet是什么? A servlet is a Java technology based web component, managed by a container, that generates dynamic content. Like other Java-based components, servlets are platform independent Java classes that are compiled to pl…
JSP(JavaServer Pages)是做Java Web开发必须掌握的语言. JSP: JavaServer Pages is a technology for developing web pages that include dynamic content. Unlike a plain HTML page, which contains static content that always remains the same, a JSP page can change its con…
XML(Extensible Markup Language) XML在日常工作中经常用到,必须有个了解,不过认识一下即可,不要太浪费时间.实际用到 参考图书 <XML入门经典>大而全,不过一般人也用不了那么多,比较贵,我买了,也就翻翻. <无废话XMLl>排版内容不错.可以下电子版本看看即可.目前XML在实际使用中最多的就是配置文件了,用来做网页流行过,不过目前基本不是了. 资料 http://www.w3school.com.cn/xml/ 开发者注意配置文件的转义字符即可.…
HTML是什么? HTML – Hyper Text Markup Language HTML官方网址 http://www.w3.org/TR/2014/REC-html5-20141028/ 其实仔细研究这个就算入门了! HTML是网页内容展示方式之一,也是最常用的方式. My First HTML Page This is some text... HTML Form HTML图书 个人比较喜欢里面的HTML&CSS HTML5比较火 个人认为也是未来的趋势 免费HTML视频 8小时学会H…
2.4.6 EF Core -- 更新 状态 自动变更检测 不查询删除和更新 并发 状态 Entity State Property State Entity State Added 添加 Unchanged 没有变化 Modified 已修改 Deleted 已删除 Detached 未跟踪 Property State IsModified CurrentValue OriginValue 自动变更检测 使用自动变更检测完成确定字段的更新 使用自动变更检测完成任意字段的更新 使用自动变更检测…
2.5.3 MongoDB -- 写入和查询 写入 查询 查找操作符 逻辑操作符 其他 嵌套对象 数组 游标方法 写入 https://docs.mongodb.com/manual/tutorial/insert-documents/ insertOne insertMany db.questions.insert( { "_id":"003", "title":"第三个问题", "view":0, &q…
2.5.4 MongoDB -- 更新和删除 整体更新 更新字段 字段操作 数组操作 删除 https://docs.mongodb.com/manual/reference/operator/update/ updateOne updateMany replaceOne 整体更新 db.questions.replaceOne({},{}) 更新字段 db.author.updateOne({"name":"mingson"}, { $set: {"ag…
2.5.5 MongoDB -- 聚合 排序 索引类型 创建索引 排序 // 升序 db.getCollection('author').find({}).sort({"age": 1}).limit(20) // 降序 db.getCollection('author').find({}).sort({"age": -1}).limit(20) // 组合 db.getCollection('author').find({}).sort({"age&qu…
2.5.6 MongoDB -- 问答系统 MongoDB 数据库设计 API 实现概述 MongoDB 数据库设计 设计优化 内嵌(mongo)还是引用(mysql) 数据一致性 范式:将数据分散到不同的集合:反范式:使用内嵌文档 在范式化的情况下需要在进行多次查询再拼装数据,或者使用 lookup,即跨表查询:反范式化的情况下可以直接查出相关数据 更适合内嵌 更适合引用 子文档较小 子文档较大 数据不会定期改变 数据经常改变 最终数据一致即可 中间阶段数据必须一致 文档数据小幅增加 文档数据…
2.5.7 MongoDB -- API实现 问题查询单个实现 问题查询列表实现 问题跨集合查询实现 问题创建实现 问题更新实现 问题回答实现 问题评论实现 问题投票实现 回答实现 QuestionController namespace LighterApi.Controller { [ApiController] [Route("api/[controller]")] public class QuestionController : ControllerBase { privat…
2.5.8 MongoDB -- API重构 Lighter.Domain Lighter.Application.Contract Lighter.Application LighterApi Lighter.Application.Tests Lighter.Domain 将数据实体转移到 Lighter.Domain 层 Lighter.Application.Contract 将业务从controller 抽取到 Lighter.Application 层,并为业务建立抽象接口 Ligh…
2.6.3 RabbitMQ -- HelloWorld 发送端 接收端 rabbitmq container 发送信息 https://www.rabbitmq.com/tutorials/tutorial-one-dotnet.html 新建控制台项目 Sender,Receiver 添加 nuget 包:RabbitMQ.Client 发送端 namespace Sender { class Sender { public static void Main() { var factory…
2.6.4 RabbitMQ -- 工作队列和交换机 WorkQueue Publish/Subscribe Routing EmitLog WorkQueue WorkQueue:https://www.rabbitmq.com/tutorials/tutorial-two-dotnet.html 一个消息生产者,多个消息消费者 exchange 交换机自动恢复 对消息进行持久化 手动确认消息 对消息进行持久化 var properties = channel.CreateBasicPrope…
2.6.6 RabbitMQ -- Masstransit 介绍 Masstransit 是什么 Quickstart 消息 Message Masstransit 是什么 Masstransit 是一个 .NET 免费开源的分布式应用框架 集成多种消息中间件(Rabbitmq, Azure, Service Bus, ActiveMQ, Kafka, In-Memory) 强大且完整的消息模式(发布与订阅,saga,event-driven state machine,最终一致性支持) 端到端…
2.6.7 RabbitMQ -- Masstransit 详解 Consumer 消费者 Producer 生产者 Request-Response 请求-响应 Consumer 消费者 在 MassTransit 中,一个消费者可以消费一种或多种消息 消费者的类型包括:普通消费者,saga,saga 状态机,路由活动(分布式追踪),处理器 handlers,工作消费者 job comsumers Consumer Instance Handler Others Consumer public…
2.6.8 RabbitMQ -- Masstransit 异常处理 异常处理 其他 高级功能 异常处理 异常与重试 重试配置 重试条件 重新投递信息 信箱 异常与重试 Exception public class SubmitOrderConsumer : IConsumer<SubmitOrder> { public Task Consume(ConsumeContext<SubmitOrder> context) { throw new Exception("Ver…
2.7.2 Scrum 核心 3个工件 5个会议 5个价值观 3个工件 产品待办列表(Product Backlog) Sprint 待办列表(Sprint Backlog) 产品增量(Product Increment) 5个会议 产品 Backlog 梳理会议(product backlog refinement) Sprint 迭代计划会议(Sprint Planning Meeting) 每日站会(Daily Scrum Meeting) Sprint 评审会议(Sprint Revie…
2.8 安全 认证 VS 授权 ASP .NET Core 认证授权中间件 认证 JWT 认证 授权 认证 VS 授权 认证是一个识别用户是谁的过程 授权是一个决定用户可以干什么的过程 401 Unauthorized 未授权 403 Forbidden 禁止访问 ASP .NET Core 认证授权中间件 在接收到请求之后,认证(Authentication)和授权(Authorization) 发生在 路由(Routing) 和 终结点(Endpoint) 之间 执行过程 认证 认证是一个识…