- 浏览: 2663475 次
- 来自: 杭州
文章分类
- 全部博客 (1188)
- webwork (4)
- 网摘 (18)
- java (103)
- hibernate (1)
- Linux (85)
- 职业发展 (1)
- activeMQ (2)
- netty (14)
- svn (1)
- webx3 (12)
- mysql (81)
- css (1)
- HTML (6)
- apache (3)
- 测试 (2)
- javascript (1)
- 储存 (1)
- jvm (5)
- code (13)
- 多线程 (12)
- Spring (18)
- webxs (2)
- python (119)
- duitang (0)
- mongo (3)
- nosql (4)
- tomcat (4)
- memcached (20)
- 算法 (28)
- django (28)
- shell (1)
- 工作总结 (5)
- solr (42)
- beansdb (6)
- nginx (3)
- 性能 (30)
- 数据推荐 (1)
- maven (8)
- tonado (1)
- uwsgi (5)
- hessian (4)
- ibatis (3)
- Security (2)
- HTPP (1)
- gevent (6)
- 读书笔记 (1)
- Maxent (2)
- mogo (0)
- thread (3)
- 架构 (5)
- NIO (5)
- 正则 (1)
- lucene (5)
- feed (4)
- redis (17)
- TCP (6)
- test (0)
- python,code (1)
- PIL (3)
- guava (2)
- jython (4)
- httpclient (2)
- cache (3)
- signal (1)
- dubbo (7)
- HTTP (4)
- json (3)
- java socket (1)
- io (2)
- socket (22)
- hash (2)
- Cassandra (1)
- 分布式文件系统 (5)
- Dynamo (2)
- gc (8)
- scp (1)
- rsync (1)
- mecached (0)
- mongoDB (29)
- Thrift (1)
- scribe (2)
- 服务化 (3)
- 问题 (83)
- mat (1)
- classloader (2)
- javaBean (1)
- 文档集合 (27)
- 消息队列 (3)
- nginx,文档集合 (1)
- dboss (12)
- libevent (1)
- 读书 (0)
- 数学 (3)
- 流程 (0)
- HBase (34)
- 自动化测试 (1)
- ubuntu (2)
- 并发 (1)
- sping (1)
- 图形 (1)
- freemarker (1)
- jdbc (3)
- dbcp (0)
- sharding (1)
- 性能测试 (1)
- 设计模式 (2)
- unicode (1)
- OceanBase (3)
- jmagick (1)
- gunicorn (1)
- url (1)
- form (1)
- 安全 (2)
- nlp (8)
- libmemcached (1)
- 规则引擎 (1)
- awk (2)
- 服务器 (1)
- snmpd (1)
- btrace (1)
- 代码 (1)
- cygwin (1)
- mahout (3)
- 电子书 (1)
- 机器学习 (5)
- 数据挖掘 (1)
- nltk (6)
- pool (1)
- log4j (2)
- 总结 (11)
- c++ (1)
- java源代码 (1)
- ocr (1)
- 基础算法 (3)
- SA (1)
- 笔记 (1)
- ml (4)
- zokeeper (0)
- jms (1)
- zookeeper (5)
- zkclient (1)
- hadoop (13)
- mq (2)
- git (9)
- 问题,io (1)
- storm (11)
- zk (1)
- 性能优化 (2)
- example (1)
- tmux (1)
- 环境 (2)
- kyro (1)
- 日志系统 (3)
- hdfs (2)
- python_socket (2)
- date (2)
- elasticsearch (1)
- jetty (1)
- 树 (1)
- 汽车 (1)
- mdrill (1)
- 车 (1)
- 日志 (1)
- web (1)
- 编译原理 (1)
- 信息检索 (1)
- 性能,linux (1)
- spam (1)
- 序列化 (1)
- fabric (2)
- guice (1)
- disruptor (1)
- executor (1)
- logback (2)
- 开源 (1)
- 设计 (1)
- 监控 (3)
- english (1)
- 问题记录 (1)
- Bitmap (1)
- 云计算 (1)
- 问题排查 (1)
- highchat (1)
- mac (3)
- docker (1)
- jdk (1)
- 表达式 (1)
- 网络 (1)
- 时间管理 (1)
- 时间序列 (1)
- OLAP (1)
- Big Table (0)
- sql (1)
- kafka (1)
- md5 (1)
- springboot (1)
- spring security (1)
- Spring Boot (3)
- mybatis (1)
- java8 (1)
- 分布式事务 (1)
- 限流 (1)
- Shadowsocks (0)
- 2018 (1)
- 服务治理 (1)
- 设计原则 (1)
- log (0)
- perftools (1)
最新评论
-
siphlina:
课程——基于Python数据分析与机器学习案例实战教程分享网盘 ...
Python机器学习库 -
san_yun:
leibnitz 写道hi,我想知道,无论在92还是94版本, ...
hbase的行锁与多版本并发控制(MVCC) -
leibnitz:
hi,我想知道,无论在92还是94版本,更新时(如Puts)都 ...
hbase的行锁与多版本并发控制(MVCC) -
107x:
不错,谢谢!
Latent Semantic Analysis(LSA/ LSI)算法简介 -
107x:
不错,谢谢!
Python机器学习库
基本开发原则
* 业务
o 非常熟悉PRD + UC + domain + 业务流程
o 熟悉业务的商业目标
o 熟悉业务的前因后果
o 熟悉业务的未来走向
o 熟悉和周边关联业务关系
o 明确划分业务服务的分界线
o 在满足业务的通用性、长期稳定性的前提下,尽量简化业务服务使用者(前端业务系统)的工作。
* 设计原则
o 简单
o 利用一切可利用的资源
o 少造轮子
o 28原则
o 重眼前,轻半年(要看业务的稳定性)后,但要考虑
* 系统设计实现
o 通用
+ 细化的domain模型
# 优化的数据库设计
# 通用字段设计:feature + option
# 必要的冗余字段
# 稳定字段和常变字段的分离
# 分库分表的考虑
# 读写分离
# 数据分析部门的考虑:gmt_create + gmt_modified + status
+ 细化的系统内、外的交互过程
# 同步、异步考虑
# 模块划分清晰
# 各模块职责独立,稳定
# 各模块的依赖清晰,尽量单向
+ 细化的状态迁移过程
# 状态的合并还是分解
# 状态机的使用
+ 周全的部署方式、结构
# 满足服务依赖原则
* 上可依赖下,上可跨级依赖下
* 下不可依赖上
* 同级可依赖,不推荐,不能有循环依赖
* 使用notify和页面依赖不限
* 下也等于高级别应用,上也等于低级别应用
# 考虑scm和sa的便利性
# 支持容灾
+ 易用的代码工程
# package按照模块划分
# client domain core server等
+ 严格的版本控制
+ 易用、合理的服务接口
# 面向业务的API
# 粗粒度和细粒度的平衡
# 通用更新和查询谨慎使用
+ 框架选型
# 选择成熟框架
# 新引入的技术要经过完善的验证
# 考虑法律风险
# 考虑以后的可维护性
+ 日志处理
# 淘宝通用日志
* xxx-debug.log 重启后清空,内容同xxx.log
* xxx.log 日切换
* xxx-filter.log 性能日志,日切换
# 必须记录堆栈
# 控制日志不要太大
+ 事务的合理使用
# 减少事务使用,减少事务段的操作个数和时间
# 最终一致
# 乐观锁的使用
o 安全
+ 保证数据完整性
+ 多线程环境的处理,保证数据一致
+ 必要的权限限制或安全日志,保留证据
o 性能
+ 性能日志的记录:Profiler + 自动拦截
+ 线程内cache
+ 读/写缓存的使用
+ 超时时间的合理设置
+ 数据库连接池的合理设置
+ 查询类接口的选择性设置
+ jvm相关优化
o 易维护
+ 重要过程的日志记录
+ 程序流程配置,比如ladder
+ 注释
+ 监控点
+ 数据订正、维护系统
* 业务
o 非常熟悉PRD + UC + domain + 业务流程
o 熟悉业务的商业目标
o 熟悉业务的前因后果
o 熟悉业务的未来走向
o 熟悉和周边关联业务关系
o 明确划分业务服务的分界线
o 在满足业务的通用性、长期稳定性的前提下,尽量简化业务服务使用者(前端业务系统)的工作。
* 设计原则
o 简单
o 利用一切可利用的资源
o 少造轮子
o 28原则
o 重眼前,轻半年(要看业务的稳定性)后,但要考虑
* 系统设计实现
o 通用
+ 细化的domain模型
# 优化的数据库设计
# 通用字段设计:feature + option
# 必要的冗余字段
# 稳定字段和常变字段的分离
# 分库分表的考虑
# 读写分离
# 数据分析部门的考虑:gmt_create + gmt_modified + status
+ 细化的系统内、外的交互过程
# 同步、异步考虑
# 模块划分清晰
# 各模块职责独立,稳定
# 各模块的依赖清晰,尽量单向
+ 细化的状态迁移过程
# 状态的合并还是分解
# 状态机的使用
+ 周全的部署方式、结构
# 满足服务依赖原则
* 上可依赖下,上可跨级依赖下
* 下不可依赖上
* 同级可依赖,不推荐,不能有循环依赖
* 使用notify和页面依赖不限
* 下也等于高级别应用,上也等于低级别应用
# 考虑scm和sa的便利性
# 支持容灾
+ 易用的代码工程
# package按照模块划分
# client domain core server等
+ 严格的版本控制
+ 易用、合理的服务接口
# 面向业务的API
# 粗粒度和细粒度的平衡
# 通用更新和查询谨慎使用
+ 框架选型
# 选择成熟框架
# 新引入的技术要经过完善的验证
# 考虑法律风险
# 考虑以后的可维护性
+ 日志处理
# 淘宝通用日志
* xxx-debug.log 重启后清空,内容同xxx.log
* xxx.log 日切换
* xxx-filter.log 性能日志,日切换
# 必须记录堆栈
# 控制日志不要太大
+ 事务的合理使用
# 减少事务使用,减少事务段的操作个数和时间
# 最终一致
# 乐观锁的使用
o 安全
+ 保证数据完整性
+ 多线程环境的处理,保证数据一致
+ 必要的权限限制或安全日志,保留证据
o 性能
+ 性能日志的记录:Profiler + 自动拦截
+ 线程内cache
+ 读/写缓存的使用
+ 超时时间的合理设置
+ 数据库连接池的合理设置
+ 查询类接口的选择性设置
+ jvm相关优化
o 易维护
+ 重要过程的日志记录
+ 程序流程配置,比如ladder
+ 注释
+ 监控点
+ 数据订正、维护系统
发表评论
-
Raft
2018-07-12 14:20 762前言 上篇文章说解决问题要分而治之,先把分片的问题解决了再 ... -
java uuid
2017-09-14 18:18 560在java中产生uuid的方式是使用java.util.UU ... -
JAVA 编码规范
2017-09-06 11:34 418https://google.github.io/style ... -
mac 入门
2015-12-01 16:28 626http://foocoder.com/blog/wo-zai ... -
java 反编译工具gad
2014-05-09 12:04 977java 反编译工具gad,备个份。 -
java 代码大全(code book)
2014-04-29 10:59 1083参考这里: http://www.java2s.com/C ... -
SQL语法解析器JSQLParser
2014-02-09 19:53 2150SQL 语法解释器jsqlparser 是用java ... -
BufferedInputStream 深入研究。
2013-11-19 13:26 14271. BufferedInputStream的基本原理 ... -
java 启动脚本
2013-08-22 19:08 982java 启动脚本 #!/bin/bash cmd=&q ... -
CRLF escape
2013-08-06 17:51 1201最近需要对用户输入的CRLF即(\r\n)做escape, ... -
安全的自增类
2013-07-22 18:16 991java中一个计数器如果超过MAX_VALUE再自增会如何? ... -
solr日志被block的问题
2013-05-23 16:48 1265"catalina-exec-22386" ... -
beanMapper
2013-01-13 22:43 889实在被一堆get,set搞烦了,周末写了一个beanMappe ... -
java instanceof ,isInstance(),isAssignableFrom之前的差异
2013-01-06 11:00 962public class ItemQuery { ... -
通过gzip对字符串压缩
2012-12-22 18:10 3128通过GZIPOutputStream,GZIPInputStr ... -
关于URL编码
2012-12-21 14:18 1112一、问题的由来 URL就是网址,只要上网,就一定会用到。 ... -
spring的FactoryBean机制
2012-11-20 16:18 1240spring可以通过的FactoryBean的形式把一个Fac ... -
HashMap cpu占用 100%
2012-11-10 22:22 1815今天在重现出HashMap cpu占用100%了,只 ... -
文字扫描工具--java.util.Scanner
2012-11-10 14:33 1102A simple text scanner which c ... -
一个隐形的java int溢出
2012-11-06 22:17 1120故事的背景: 笔者最近在做一个类SNS的项目, ...
相关推荐
信息系统开发是现代企业管理和决策的重要支撑,遵循一系列基本原则以确保其有效性和可持续发展。以下是基于提供的文件内容,对信息系统开发的基本原则的详细说明: 1. 实用性原则:这一原则强调系统必须满足用户在...
软件开发的201个原则是软件开发领域的重要文献,旨在总结和提炼软件开发的基本原则和最佳实践。本书共分为20章,涵盖了软件开发的各个方面,包括质量管理、开发效率、客户沟通、项目管理、测试和维护等。 第一章...
【管理信息系统开发的基本原则】 管理信息系统(Management Information System, MIS)是组织机构中不可或缺的组成部分,用于收集、处理、存储和分发管理所需的信息。在开发MIS时,遵循一些基本原则至关重要,以...
微软的软件开发过程基于五项基本原则,旨在高效、有序地创造出高质量的产品。这些原则是微软在软件开发领域的核心指导方针,对于理解微软如何管理和优化其产品开发流程至关重要。 首先,微软将大项目拆分为多个里程...
总而言之,软件开发的成功不仅需要技术上的精进,更需要遵循一套科学合理的开发原则。通过在人员、过程、产品和技术四个维度上精心策划和管理,以及在项目管理中平衡时间、成本和质量三个要素,软件开发团队才能有效...
在软件开发领域,遵循一定的基本原则至关重要,因为它们能够指导项目团队有效地管理时间、成本和质量,形成所谓的“项目管理三角形”。这篇文档探讨了软件开发的基本原则,这些原则是通用的,适用于各种软件开发项目...
在软件开发领域,基本原则是确保项目成功、代码质量高且可维护性良好的基石。这些原则指导着开发者在设计、编码、测试和维护软件时的行为。下面我们将深入探讨这些基本原则,并结合"软件开发基本原则.pdf"中可能涵盖...
本书中,享誉全球的软件开发专家和软件工程大师RobertC.Martin深入而生动地使用真实案例讲解了面向对象基本原则、重要的设计模式、UML和敏捷实践等程序员必备的知识。本书于2003年荣获第13届Jolt大奖,是C++和Java...
### 软件开发的201个原则 #### 一、概述 《软件开发的201个原则》是一本全面阐述软件开发过程中应当遵循的原则性指导书籍。该书内容丰富,覆盖了从项目启动到交付的各个阶段,旨在帮助软件开发团队提高产品质量、...
本书讲授了一些原则、模式以及实践,它们可以帮助软件开发人员在追求美的程序、设计以及团队的道路上迈出第一步。本书探索了基本的设计原则,软件设计结构的通用模式以及有利于团队融为一个有机整体的一系列实践。...
软件开发设计原则是指在软件开发过程中所遵循的一些基本原则,这些原则可以帮助开发者编写出更加灵活、可维护、可扩展的代码。这些原则包括单一职责原则、开放封闭原则、里氏替换原则、最少知识原则、接口隔离原则和...
2. **原则**:书中提出了12条敏捷开发原则,如“我们的最高优先级是通过尽早并持续交付有价值的软件来使客户满意”,“欢迎随时改变需求,即使在开发的后期”。这些原则旨在鼓励灵活应对变化,促进团队与客户的紧密...
在软件开发领域,遵循基本原则是确保项目成功的关键。这些原则涉及到项目管理的三大核心要素:时间、成本和质量。这三者之间的关系构成了项目管理三角形,表明在时间和成本不变的情况下,提高质量或添加特性会增加...
安全编码的基本准则,安全开发规范。 安全编码是软件开发中非常重要的一方面,涉及到数据安全、用户输入验证、数据加密、SQL注入防护、XSS攻击防护等多个方面。下面是安全编码的基本准则和开发规范: 一、输入数据...
在MATLAB开发中,掌握基本绘图原则是至关重要的,因为可视化是数据分析和科学计算的重要组成部分。本资源“matlab开发-学习基本绘图原则”通过一系列PowerPoint幻灯片和MATLAB脚本来教授如何有效地利用MATLAB进行...
软件开发基本原则.doc
书中不仅包含了敏捷开发的基本概念,还深入讨论了各种敏捷模式和实践,为软件开发团队提供了宝贵的指导。 首先,我们需要理解敏捷软件开发的核心理念。敏捷开发强调的是迭代、增量式的开发过程,以适应需求变化和...
【软件开发基本原则】是指导软件开发项目顺利进行的关键准则,旨在确保项目的质量、时间和成本达到理想平衡。在软件开发中,时间、成本和质量(或特性)构成著名的“项目管理三角形”,它们互相影响,不可孤立优化。...