关于过度设计、设计不足的思考

翻博客的时候,偶然间发现一个词过度设计,与之想对应的则为设计不足,发散下思维,看看些文章做一些自己的总结。

过度设计

过度设计指的是:设计实现出来的系统臃肿庞大,功能俱全确不好用,特别是那种巨型的ERP系统。分为需求层面上的过度设计和软件实现层面上的过度设计。

需求层面上的的过度设计: 需求上的过度设计即过度解读用户需求, 形成了太多的衍生需求,这些需求是否能够真正帮助用户还是两说. 这些衍生需求是 否需要设计还是丢弃需要权衡。
软件设计层面上的过度设计: 过度的封装、一堆接口和无用的方法、超复杂的xml配置文件,不恰当的框架选型等。造成代码臃肿,难以维护.

设计不足

设计不足: 指的是设计出来的系统复用性差,扩展性不足,不能灵活的应对变化,甚至达不到用户需求.

总而言之,设计不足和过度设计都是设计不当,实际情况下不论是以需求为导向还是前瞻性的需求为导向到应该寻取两者的平衡点,尽量做到设计简洁、实用.

南京出差~

前前后后算起来去南京出差已经几次了,还没有好好逛逛四朝古都呢,趁最后一次机会,就近去夫子庙、秦淮河走一圈~

总的来说,晚上的秦淮河还是值得一去的.领略特色小吃,行船而过,也只有晚上才能稍稍感受到古往的才子佳人、风雅之气

-- EOF --

IDEA使用技巧

写在前面

工作中一直使用Eclipse作为开发工具,自己下来玩的时候用IDEA居多,然而有时候一些快捷键啊,配置操作啊,容易忘.当时在搜索又比较耗时间,而且网上的文章也不够直接,好记性不如烂笔头,自己做一个记录列表.

自动import

IDEA没有类似Eclipse的自动导入清除无用包快捷键optimize imports(ctrl+shift+o),但是可以通过设置让IDE支持自动导入与删除已经明确的包.如下图所示:

Spring Boot(三):配置详解

写在之前

在前面Spring Boot的入门篇中,可以很直观的感受到使用Spring Boot没有了原来整合Spring应用时繁琐的XML配置内容,替代它的是在pom.xml中引入模块化的Starter POMs,各个模块具有自己的默认配置.在application.properties文件中,只需要设置少量的应用即可开启应用.

在实际的项目中,配置是十分复杂的,存在多个配置环境,例如:

开发环境 -> 测试环境 -> 演示环境 ->生产环境

每个环境的配置项总是不同的,而且就算是在开发环境中,不同的开发人员也会有区别,配置文件的读取总是比较伤脑筋.Spring Boot提供了一种优先级配置读取机制很好的解决此问题.
在入门篇中,了解到Spring Boot的配置会从application.properties中读取,实际上这只是Spring Boot配置链中的一环而已.

Spring Boot(二):war包形式发布

在上一篇入门文章中,也提及了Spring Boot可以发布成war包运行在外包的tomcat中.具体做法如下.

  1. 在POM.XML文件中将jar改为war
  1. 添加依赖.
    1
    2
    3
    4
    5
    <dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-tomcat</artifactId>
    <scope>provided</scope>
    </dependency>

Spring Boot(一):快速入门

简介

Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建及开发过程。JavaEE开发的小伙伴肯定听说过”约定优于配置”、”契约式编程”,就是说系统、类库、框架应该假定合理的默认配置,而非要求提供不必要的配置,简化配置项减少跨平台部署容易出现的问题。基于这些问题Spring Boot应运而生,更简单快捷的构建Spring应用。

Spring Boot优点

Spring Boot让Spring应用简单、快速、轻量化!传统的Spring应用搭建一个基础的spring web项目需要做些什么呢?

1) 配置web.xml,加载spring和spring mvc.
2) 配置数据库连接、配置spring事务等.
3) 配置文件的加载、读取.
4) ……

之后的部署,打包十分繁琐.虽然基于”约定优于配置”Spring能够减少了很多的配置项,但是仍然比较臃肿,每个项目都需要这么折腾一遍!但是如果使用微服务Spring Boot框架,只需少量配置即可.

jQuery插件练习集

半吊子前端,整理一些自己没事练习的jQuery插件,权当做个记录.

SocialShare(社会化分享插件)

简单高效的社会化分享插件(sns-share),当站点需要添加社会化分享功能的时候,一般会想到baiduShare,或者JiaThis这类的第三方分享聚合工具,通过灵活的配置很快的就能实现分享功能.
不过这种方式也有一些弊端:性能问题自定义不方便,界面,交互的体验不是非常好,笔者在自己的个人站点里面也想实现社会化 分享功能,而且喜欢简洁,因此就有了这款社会化分享插件.如图所示:

分享

插件地址:https://github.com/Kiritor/socialShare

准备开始养鱼了~

比较宅,平时周末下班也比较闲,想着养点什么东西打发时间.由于住公司,不可能养比较大的宠物,就选择养鱼了(一直觉得养鱼很难,要有耐心,小鱼又很娇贵,不过还是觉得尝试一下!)

-- EOF --