初衷

重构和复用是软件的一个古老话题。

在日常的软件项目开发的过程序中,如何保证团队代码的强健,同时在不断变化的需过程中最大限度的保障代码的一致性,是项目开发中的难以控制的,我们可以借助各种源码管理和标准工作流程制度和增加各种岗位人手来进行控制,但随着时间的推移,由于各种水平的开发人员,加入各种藕合的非藕合的功能,代码变得难以管理。

但市场和客户对我们的软件总是看起来让人不可理喻,当我们信心满满的把软件产品交付给我们客户时依然要应对各种指责,有的需求反复,“不,这完全没有达到我们当时的需求,和我想的不一样”,在不断的变化,不断的反复,代码被修改得面目全非,团队陷于无助之中。

从实际的管理中,我们不能完全消除代码的藕合、代码的混乱,每一个程序员心中都有自己的江湖,所谓“文无第二、武无第一”,每个程序员都会认为自己的代码是没有任何问题的。作为项目的管理者,只能最大限度的降低程序人员的人为因素来的变化,让标准化的代码在项目占有越大的份量,如果这是标准代码是由工具产生,那么在需求发生变化时,重购代码也变得非常轻松且易控。

如果在构建项目之初的与客户需求交流中,以工具来生成标准代码并因此为用户快速构建一个可见的Demo,那么项目需求就会变得更加明确、易控。尽管这与最终交付的产品还有很大的差距,但仍然可以减少客户需求的明确性。如果我们把可控代码与非控代码在生产时进行分离,那么当后期客户需求变化时,仍然可以让工具重构变化的需求。

让技术优秀的人员构建基础库,变把日常开发中用的常用功能模板化,这样,框架-工具-模板,就会在团队中成为技术、经验的容器,让再开发变得更加容易、可控、稳定。我们不需要把大把的时化在那些重复且繁重的属性代码编写,并不断的进行各种属性的拷贝,在需求变更时,又化大量时间云矫正。我们应该让更多时间去与客户交流业务需求,编写强健的应用设计上,那么我们应该使用正确的框架、同时逐渐累积可复用的功能支持库,并使功能模块低耦合,使用代码工具将各种功能调用模板化,这样不仅保证了编码上的一至性,同时最大限度降低编码的劳动强度,减少重复简单代码所消耗宝贵的时间,也能使组织和团队在协调技术的一至上化更少的时间和金钱的投入。

一个好的架构能应对不同的应用需求,但是没有一个可行的,万能的架构,不然我没在这里就不用讨论架构的问题了。这里不仅是代码的问题,随着时间的推移,各种编程技术的进步,让一些原本复杂的问题变得简单,功能更容易实现,而客户需求总是贪婪的,所要求的更加复杂,使得新的需求产生,技术实现同样的需要更多的精力和时间,就因为如此,我们不应该同时也没必要把时间和精力耗在无尽的重构中,而应该让编写代码更加工具化、模板化换个比较时尚的词,更加智能化。

ATK 系列说明

AtkFrame

  • 其核心是:Atk.DataPortal
  • 框架业务基础类型;
  • 数据门户;
  • 业务操作简化;
  • 业务操作权限的处理;

二、CodeToolSolution

实现目标:

  • 快实现基于Atk.DataPortal为基础框架的业务代码;
  • 通过自定义模板,生成非标准的业务代码

三、 SqlRepoEx

轻型的ORM处理库,基于开源的SqlRepo库的二次开发;

  • 解决前端为强类型操作,数据操作时为基本的SQL语句之间的无缝转换;
  • 减少数据层操作的复杂度;
  • 简化分布式服务时数据操作;

四、ExpressionTurn

Lambda表达式转SQL语句类库

  • 本功能类库主要提供给代码中使用Lambda表达式,后需转成SQL的条件语句这一需求;
  • 解决条件状态下Lambda拼凑条件语句;
  • 本类库不能解析Linq语句、不能解析SQL中的Select部分。但SqlRepoEx解决了这个问题

以上各库、工具会在接下的博客中进行更细仔说明。

---------------------------------------

ATK

1、一个完整支持分布式服务框架;

2、代码生成工具,可快速生成基于服务框架的应用;

3、其他支持库

4、完整代码可在GitHub的https://github.com/azthinker ;开源中国 https://gitee.com/azthinker

目标:使应用开发,低代码、高效率、快迭代

有兴趣的请在QQ群中参与讨论、联系作者  QQ群名称:ATK高效开发 ,QQ群号:747049962

也可发邮件至:azthinker@sina.com

Demo中的数据库、编译好的代码工具链接:https://pan.baidu.com/s/1B9RQm7_-SFyhLb_HLIGs0w 密码:85q6

ATK Demo使用的数据库 : https://download.csdn.net/download/xftyyyyb/10675497

ATK自动代码工具 :https://download.csdn.net/download/xftyyyyb/10675490

ATK系列库说明的更多相关文章

  1. ATK系列库介绍

    1.一个完整支持分布式服务框架: 2.代码生成工具,可快速生成基于服务框架的应用: 3.其他支持库 4.完整代码见https://github.com/azthinker 目标:使应用开发,低代码.高 ...

  2. STM32入门系列-库目录及文件介绍

    已经介绍了过了CMSIS标准,ST公司按照这个标准设计了一套基于STM32F10x的固件库,我们可以直接在ST公司的官网进行下载,现在给大家STM32最新固件库v3.5,在网盘上给大家提供了下载包,链 ...

  3. STM32入门系列-库帮助文档使用

    在前面文件夹介绍时,提到了stm32f10x_stdperiph_lib_um.chm文件,此文件是库函数使用帮助文档,可以直接打开如下图. 因为STM32库函数非常多,我们不可能把所有的外设函数都记 ...

  4. 教程:关于如何通过Maven仓库安装Spire系列的 Java产品

    Spire系列库中已发布的Java产品目前有三个,即Spire.PDF for Java.Spire.Presentation for Java.Spire.Barcode for Java.使用该J ...

  5. ATK 设计框架 之 Atk.CustomExpression

    在ATK-DataPortal框架中的xxxHandel中常用到的一种类型,形如: 1.protected virtual D ItemHandle(D item, Func<E, E> ...

  6. Cookiecutter: 更好的项目模板工具:(1)简介及可用资源汇总

    原文档地址:https://cookiecutter.readthedocs.io/en/latest/ 本系列只介绍cookiecutter的基础使用,而且会删除与功能使用无关的部分.深度使用及了解 ...

  7. 部分rpm包总结描述

    acl-2.2.51-15.el7.x86_64 Commands for Manipulating POSIX(可移植操作系统接口 of unix) Access Control Lists.有ge ...

  8. Android Support Library

    title: Android Support Library tags: Support Library,支持库 grammar_cjkRuby: true --- DATE: 2016-5-13. ...

  9. MVVM架构的一次实践,重写iOS头条客户端

    前言: 一个iOS头条APP,使用MVVM架构实现,代码中有注释,封装了AFN网络请求,解媾代码,使用起来非常方便.用最经典的TableView展示,后续不断更新,喜欢就star或fork一下,有问题 ...

随机推荐

  1. 网络连接和初始HTTP请求

    浏览器检索网页,先从URL开始,使用DNS确定IP地址,再用基于TCP和HTTP协议连接到服务器,请求相关的内容,得到相应,浏览器解析并呈现到屏幕上.服务器响应后,浏览器响应不会同时全部到达,会陆续到 ...

  2. XML入门介绍(什么是XML及XML格式)

    什么是 XML? XML 指可扩展标记语言(EXtensible Markup Language). XML 是一种很像HTML的标记语言. XML 的设计宗旨是传输数据,而不是显示数据. XML 标 ...

  3. 数组和矩阵(2)——Reshape the Matrix

    In MATLAB, there is a very useful function called 'reshape', which can reshape a matrix into a new o ...

  4. Java集合篇一:ArrayList

    package com.test.collection; /** * 自定义ArrayList容器 * * 1.实现原理:底层封装数组 * * 2.查询 * LinkList 相较 ArrayList ...

  5. 从零开始的全栈工程师——underscore

    underscore 是js封装的一个js库 库和框架是有区别的 mvc框架就是backbone就是依赖这个库underscore就是定义了一个_( 下划线对象 ); 函数库的所有的方法都归属于这个对 ...

  6. C# 生成CODE128条码

    using System; using System.Collections.Generic; using System.Data; using System.Drawing;    namespac ...

  7. 设计模式之适配器模式(Adapter)

    1. 概述 将一个类的接口转换成客户希望的另外一个接口.Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以在一起工作. 2. 解决的问题 即Adapter模式使得原本由于接口不兼容而不 ...

  8. 使用WindowsService为宿主实装WCF 服务

    1. 写WCF服务   创建一个接口类,与一个实现类.接口类上打上[ServiceContract]标签,需要暴露的服务方法上打上[OperationContract] (注意:增加System.Se ...

  9. 【Leetcode】【Medium】Single Number

    Given an array of integers, every element appears twice except for one. Find that single one. Note:Y ...

  10. Orchard Core 文档翻译 (二)代码生成模板 Code Generation Templates

    Code Generation Templates 翻译原文:https://www.cnblogs.com/Qbit/p/9746457.html转载请注明出处 Orchard Core Templ ...