框架

悠然乱弹:我的开源观

我的梦境 提交于 2020-11-27 04:28:56
前几天看到一朋友,在营销自己的开源产品, 有一点感触,也说说我的开源观点。 关于收入的问题, 如果期望开源能够快速给自己带来收入,这个可能绝大多数的可能是会失望的。一般来说,一个开源产品,从开始,到发展,到最后能有收入,能营收平衡,这个一个漫长及艰难的过程。如果靠这个买米买肉,估计要饿死的。 那开源不关心收入,为什么还要开源呢?我可想可能有如下可能: 1.获取精神上的满足 比如,你做了一个好东西,但是又卖不了钱,放在自己兜兜里,一点成就感也没有,拿出来开源,让大家使用使用,自己获得一下成就感,满不错的。 2.获取社会的认可 通过开源,获得相当的社会认可度,有可能东方不亮西方亮,获得更好的发展机会或工作机会,或者获得与别人合作的机会。 3.收集需求 一个人在那里做,总是有这样那样局限的,即使你是超级牛人, 通过给别人免费使用,别人给你提出这样那样的意见和建议,可以帮你快速丰富和完善产品。 4.用户测试 有时候,你做了个东东,自己也不知道到底好不好,现在有许多用户来使用,实际上也同时给你做了测试。 5.获取用户群 有时候,一个产品放在那里没有什么价值,但是随着用户群越来越大,可能就可以有盈利的潜质了。同时也是潜在用户的一种培育,免费使用的人多了,可能就有愿意掏钱获得更好的服务与产品或者定制开发的人了。 6.一种市场营销手段 本来产品做也还可以,通过开源,获得市场认可,提高知名度

浅谈基础平台

跟風遠走 提交于 2020-11-22 04:42:25
一、 什么是基础平台 基础平台对应于业务应用,主要处理技术问题,是为业务应用提供技术支撑以及技术方案的模块或者组件。其目的是使得应用组件可只关注于业务逻辑,而不考虑或者少考虑技术问题。 基础平台通常包括如下:基础功能,开发类库,开发模式以及开发部署工具。 二、 为何要基础平台 应用系统的设计可以说是将一个业务语言翻译成程序语言的过程,这个过程同时处理两个内容:业务和技术。 1. 学习业务,编写的代码符合用例的流程; 2. 学习技术,编写的代码符合技术平台的规范和要求。 这里不同底层技术的难易度不同,导致学习成本、开发成本和应用成本也不同。同时对于一个有较长生命周期的软件项目或者产品,其依赖的底层技术的升级也会带来相应的维护成不 面对特定领域的软件项目或者产品,其所依赖的底层技术的广度和深度相对稳定,基础平台可以填平或者减少技术层面的鸿沟。 那么,我们就面临另一个问题,即:业界已经存在大量优秀的开源框架,我们为何要基础平台。 首先,大量优秀开源框架可以帮助我们,但是: 1. 优秀的开源框架通常偏向通用性,而面向特定领域的相关特性和功能还不支持;即便有面向特定领域的,其支持的特性还存在一定差异性;同时其未必支持相应的基础设施。 因此需要进行二次开发,以完善所需的基础设施; 2. 优秀的开源框架在通用性支持广泛,提供多种选择,同时还有一定学习成本;而面向特定领域,需要的模式相对固定。

maven搭建 springmvc+mybatis应用

余生颓废 提交于 2020-04-15 17:47:00
【推荐阅读】微服务还能火多久?>>> 最近研究maven,故而用maven搭建了springmvc+mybatis框架来实践一下,如有不足之处,望指正。 下面开始讲解,本人视读者已经掌握maven的使用或者队maven有一定的了解,如果不了解maven,请查看 小菜鸟的博客---maven详解 。 本文用的spring是 4.0.5.RELEASE版,日志框架用的是logback 1.1.2,数据库连接池用的是c3p0 0.9.1.2,mybatis 用的是 3.2.7。所用技术基本都是最新版本。多说一句,本文 mybatis-spring桥用的是mybatis提供的mybatis-spring,当然你也可以用spring orm配合mybatis使用,但是没有用mybatis提供的简单,这里不再赘述。 首先创建一个maven project,编写pom文件,将对应的jar包引用进来。编辑后的pom如下: Xml代码 < project xmlns = "http://maven.apache.org/POM/4.0.0" xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation = "http://maven.apache.org/POM/4.0.0 http://maven.apache

Spring之美-事务管理

不打扰是莪最后的温柔 提交于 2020-04-11 17:44:26
一、概述 事务管理对于企业应用来说是至关重要的,即使出现异常情况,它也可以保证数据的一致性。 Spring Framework对事务管理提供了一致的抽象,其特点如下: 为不同的事务API提供一致的编程模型,比如JTA(Java Transaction API), JDBC, Hibernate, JPA(Java Persistence API和JDO(Java Data Objects) 支持声明式事务管理,特别是基于注解的声明式事务管理,简单易用 提供比其他事务API如JTA更简单的编程式事务管理API 与spring数据访问抽象的完美集成 二、事务的基本原理 S pring事务的本质其实就是数据库对事务的支持,没有数据库的事务支持,spring是无法提供事务功能的。对于纯JDBC操作数据库,想要用到事务,可以按照以下步骤进行: 获取连接 Connection con = DriverManager.getConnection() 开启事务con.setAutoCommit(true/false); 执行CRUD 提交事务/回滚事务 con.commit() / con.rollback(); 关闭连接 conn.close(); 使用Spring的事务管理功能后,我们可以不再写步骤 2 和 4 的代码,而是由Spirng 自动完成。
那么Spring是如何在我们书写的

架构、框架、设计模式的定义和区别

回眸只為那壹抹淺笑 提交于 2020-04-08 09:43:57
一、架构   架构即软件架构, 是有关软件整体结构与组件的抽象描述,用于指导大型软件系统各个方面的设计。软件体系结构是构建计算机软件实践的基础,简单来说,软件架构是一个系统的草图,是一种设计方案,将客户的不同需求抽象成为抽象组件,各个组件之间的连接则明确和相对细致地描述组件之间的通讯。   在实现阶段,这些抽象组件被细化为实际的组件,比如具体某个类或者对象。在面向对象领域中,组件之间的连接通常用接口来实现。 二、框架    框架即软件框架, 通常指的是为了实现某个业界标准或完成特定基本任务的软件组件规范,也指为了实现某个软件组件规范时,提供规范所要求之基础功能的软件产品。   框架的功能类似于基础设施,与具体的软件应用无关,是项目软件开发过程中提取特定领域软件的共性部分形成的体系结构,提供并实现最为基础的软件架构和体系。软件开发者通常依据特定的框架实现更为复杂的商业运用和业务逻辑。这样的软件应用可以在支持同一种框架的软件系统中运行。   简而言之,框架就是制定一套规范或者规则(思想),大家(程序员)在该规范或者规则(思想)下工作 ,不同领域的软件项目有着不同的框架类型。框架不是现成可用的应用系统。而是一个半成品,提供了诸多服务,开发人员进行二次开发,实现具体功能的应用系统。 三、设计模式   设计模式( design pattern)是对软件设计中普遍存在(反复出现)的各种问题

0xx_PHP_TP框架

≡放荡痞女 提交于 2020-04-08 03:23:01
ThinkPHP框架 今日目标(每日任务) 1 能够安装ThinkPHP5框架并熟悉常用目录结构 2 能够使用ThinkPHP5框架的控制器 3 能够命令行创建模块目录和文件 4 能够使用ThinkPHP5框架的Request请求类 5 能够进行模板渲染 一、框架概述 1、什么是框架 框架就是一些代码类、方法(函数)、变量、常量的集合,这些代码是功能结构性的代码(并非业务代码)。业务代码其实就是具体的一些模块的增删改查逻辑代码。 使用框架开发项目,有便于代码重用、开发效率高、代码规范好、便于功能扩展等优点。 2、php中的主流框架 ①Zend Framework 框架,PHP官方框架。 ②YII框架,又叫易框架。 ③Symfony 框架。 ④Laravel框架,市场使用较多。 ⑤Codelgniter框架,简称CI框架。 ⑥ThinkPHP框架,简称TP框架,常用版本:3.2.3和 5.0.*版本。 ThinkPHP是国人自己开发的框架。有中文官网、中文帮助文档、中文社区,以及丰富的百度搜索资源。所以ThinkPHP很适合作为入门级的开发框架。 这些框架大多都基于MVC设计思想和面向对象的。 mvc: M:模型model,处理业务数据,与数据库做交互。 V:视图view,显示html页面,用户能够看到并与之交互的页面。 C:控制器controller,接收请求,调用模型处理数据

Django框架初步应用简述

不打扰是莪最后的温柔 提交于 2020-04-08 00:47:19
一、什么是Django? Django 是用Python开发的一个免费开源的Web框架,可以用于快速搭建高性能,优雅的网站!采用了MVC的框架模式,即模型M,视图V和控制器C,也可以称为MVT模式,模型M(model),视图V(view),模板T(template)。M负责与数据库交互,进行数据处理。V对应接收请求,进行业务处理,相当于MVC中的C,T负责构造要返回的html页面。 二、Django 初步应用?    1.环境准备: pip install -i https://pypi.douban.com/simple Django    2.新建工程: 建议直接在pycharm新建项目时,选择django工程,并在对应目录下创建独立的虚拟环境venv。如下图,选择好后,点击create,即可创建django项目。(需要在虚拟环境 安装数据库操作模块 pip install mysqlclient)    3. 新建子应用: 打开新建工程,进入虚拟环境,运行:python manage.py startapp 子应用名称,或者在pycharm菜单栏中选择TOOLS--RUN manage.py task--->终端窗口再运行:startapp 子应用名。    4. 修改配置: 工程结构如下(新建了projects和interfaces两个子应用)

玩转Google开源C++单元测试框架Google Test系列(gtest)(总)

怎甘沉沦 提交于 2020-04-07 23:45:23
摘自: https://www.cnblogs.com/coderzh/archive/2009/04/06/1426755.html 前段时间学习和了解了下Google的开源C++单元测试框架Google Test,简称gtest,非常的不错。 我们原来使用的是自己实现的一套单元测试框架,在使用过程中,发现越来越多使用不便之处,而这样不便之处,gtest恰恰很好的解决了。 其实gtest本身的实现并不复杂,我们完全可以模仿gtest,不断的完善我们的测试框架, 但最后我们还是决定使用gtest取代掉原来的自己的测试框架,原因是: 1.不断完善我们的测试框架之后就会发觉相当于把gtest重新做了一遍,虽然轮子造的很爽,但是不是必要的。 2.使用gtest可以免去维护测试框架的麻烦,让我们有更多精力投入到案例设计上。 3.gtest提高了非常完善的功能,并且简单易用,极大的提高了编写测试案例的效率。 gtest的官方网站是: http://code.google.com/p/googletest/ 从官方的使用文档里,你几乎可以获得你想要的所有东西 http://code.google.com/p/googletest/wiki/GoogleTestPrimer http://code.google.com/p/googletest/wiki

前端工程师必须了解的主流前端框架

荒凉一梦 提交于 2020-04-07 19:57:03
现在前端工程师的工作已经不想几年前那样,仅仅写一些页面调整一下样式就可以拿到高薪了。由于前端技术的发展,以及企业对前端工程师的要求越来越高,现在前端工作也越来越复杂。不过只要掌握目前比较流行的主流框架,完全可以轻松应对老板提出的各种需求。今天就和大家聊聊前端工程师必须了解的主流前端框架。 已经从事前端工作,或者正在学习前端开发的朋友们都知道。HTML /CSS/JS是前端开发的基本功。其中 HTML负责结构,网页想要表达的内容由 html书写。 CSS负责样式,网页的美与丑由它来控制, JS负责交互,用户和网页产生的互动由它来控制。 具体来说说目前有哪些主流的前端框架! 1.Bootstrap 它可以让你的页面更简洁、直观、强悍、移动设备优先的前端开发框架,让 web开发更迅速、更简单。它还提供了更优雅的 HTML和 CSS规范,它即是由动态 CSS语言 Less写成。有着丰富的网格布局系统以及丰富的可重用组件,还有强大的支持十几的 JavaScript、 jQuery插件以及组件定制等。 2. Layui 它是一款口碑极佳的 web弹层组件,是一款采用自身模块规范编写的前端 UI 框架,遵循原生 HTML/CSS/JS 的书写与组织形式,门槛极低,拿来即用。 layui 首个版本发布于 2016年秋,她区别于那些基于 MVVM 底层的 UI 框架,从核心代码到 API

Scrapy 框架 安装

懵懂的女人 提交于 2020-04-07 13:46:00
Scrapy 框架 Scrapy是用纯Python实现一个为了爬取网站数据、提取结构性数据而编写的应用框架,用途非常广泛。 框架的力量,用户只需要定制开发几个模块就可以轻松的实现一个爬虫,用来抓取网页内容以及各种图片,非常之方便。 Scrapy架构图(绿线是数据流向): Scrapy Engine(引擎): 负责Spider、ItemPipeline、Downloader、Scheduler中间的通讯,信号、数据传递等。 Scheduler(调度器): 它负责接受引擎发送过来的Request请求,并按照一定的方式进行整理排列,入队,当引擎需要时,交还给引擎。 Downloader(下载器):负责下载Scrapy Engine(引擎)发送的所有Requests请求,并将其获取到的Responses交还给Scrapy Engine(引擎),由引擎交给Spider来处理 Spider(爬虫):它负责处理所有Responses,从中分析提取数据,获取Item字段需要的数据,并将需要跟进的URL提交给引擎,再次进入Scheduler(调度器) Item Pipeline(管道):它负责处理Spider中获取到的Item,并进行进行后期处理(详细分析、过滤、存储等)的地方. Downloader Middlewares(下载中间件):你可以当作是一个可以自定义扩展下载功能的组件。 Spider