
软件工程
文章平均质量分 93
mergerly
这个作者很懒,什么都没留下…
展开
-
我用 go-zero 一周实现了一个中台系统,已开源!
最近发现golang社区里出了一个新星的微服务框架,来自好未来,光看这个名字,就很有奔头,之前,也只是玩过go-micro,其实真正的还没有在项目中运用过,只是觉得 微服务,grpc 这些很高大尚,还没有在项目中,真正的玩过,我看了一下官方提供的工具真的很好用,只需要定义好,舒适文件jia结构 都生成了,只需要关心业务,加上最近 有个投票的活动,加上最近这几年中台也比较火,所以决定玩一下,开源地址: https://github.com/jackluo2012/datacenter先聊聊中台架构思路转载 2021-03-11 16:30:07 · 1738 阅读 · 0 评论 -
go-zero微服务框架入门教程
为什么使用go-zero你还在手撕微服务?快试试 go-zero 的微服务自动生成神器,这可能是我见过最简单好用的微服务框架。还有比它更简单好用的吗?欢迎留言评论和推荐。几分钟搞定个接口和微服务,还不用担心稳定性和高并发,这不香吗?还有比这更简单和高效的吗?工具大于约定和文档的理念,编码自动化,大幅度的提高效率和生产力,这会是个趋势,让精力更多的放在业务和创新上。推荐下go-zero 微服务框架,致力于打造国内最简单好用的框架。为什么使用go-zero?可以有第三个选择golang圈子不大转载 2021-03-11 16:25:19 · 3782 阅读 · 0 评论 -
git简明教程 - 协作篇
Git是分布式版本控制系统,同一个Git仓库,可以分布到不同的机器上。怎么分布呢?最早, 肯定只有一台机器有一个原始版本库,此后,别的机器可以“克隆”这个原始版本库, 而且每台机器的版本库其实都是一样的,并没有主次之分。实际情况往往是这样,找一台电脑充当服务器的角色,每天24小时开机, 其他每个人都从这个“服务器”仓库克隆一份到自己的电脑上,并且各自把各自的提交推送到服务器仓库里, 也从服务器...转载 2018-03-08 16:42:43 · 429 阅读 · 0 评论 -
git简明教程 - 分支篇
终于要介绍git的杀手级特性分支了,这也是大部分人使用git的原因。 其他版本控制系统如SVN等都有分支管理,但是用过之后你会发现,这些版本控制系统创建和切换分支比蜗牛还慢, 简直让人无法忍受,结果分支功能成了摆设,大家都不去用。 Git的分支是与众不同的,无论创建、切换和删除分支,Git在1秒钟之内就能完成!无论你的版本库是1个文件还是1万个文件。创建与合并分支每次提交,Git都把它们串成一条时间转载 2018-03-08 16:35:48 · 300 阅读 · 0 评论 -
git简明教程 - 基础篇
很早就想些一篇关于git的文章了,这玩意儿实在好用,但是内容又比较多, 这里我讲解最基本使用技巧,这个足以应对99%以上的场景,剩下那些真的要用到就去看官网手册。Git是目前世界上最先进的分布式版本控制系统(没有之一),它的诞生也是个很有趣的故事。 大家都知道Git是Linus大神写的,据说刚开始的时候,linux内核源码使用BitKeeper这个商业版本控制系统, BitKeeper授权Linux转载 2018-03-08 16:28:35 · 1718 阅读 · 0 评论 -
Jenkins使用简易教程
Jenkins是一款能提高效率的软件,它能帮你把软件开发过程形成工作流,典型的工作流包括以下几个步骤1. 开发2. 提交3. 编译4. 测试5. 发布有了Jenkins的帮助,在这5步中,除了第1步,后续的4步都是自动化完成的,具体的,当你完成了提交,Jenkins会自动运行你的编译脚本,编译成功后,再运行你的测试脚本,这一步成功后,接着它会帮你把新程序发布出去,特别的,在最后一步转载 2018-03-08 16:09:43 · 7909 阅读 · 2 评论 -
Jenkins持续集成 - 安装配置
Jenkins是一个用Java编写的开源的持续集成工具,前身是Hudson项目。 在与Oracle发生争执后,项目从Hudson复制过来继续发展。Jenkins提供了软件开发的持续集成服务。它运行在Servlet容器中(例如Apache Tomcat)。 它支持许多软件配置管理(SCM)工具,可以执行基于Apache Ant和Apache Maven的项目, 以及任意的Shell脚本和Wind...转载 2018-03-08 14:50:48 · 474 阅读 · 0 评论 -
Jenkins持续集成 - 管道详解
前面一篇介绍了Jenkins的入门安装和简单演示,这篇讲解最核心的Pipeline部分。Jenkins Pipeline 就是一系列的插件集合,可通过组合它们来实现持续集成和交付的功能。通过Pipeline DSL为我们提供了一个可扩展的工具集,将简单到复杂的逻辑通过代码实现。通常,我们可以通过编写Jenkinsfile将管道代码化,并且纳入到版本管理系统中。比如:1234567891011121转载 2018-03-08 14:57:32 · 4307 阅读 · 0 评论 -
Jenkins持续集成 - 使用案例
这一篇我通过两个实际的真实例子来演示Jenkins常见使用案例。 第一个例子演示一个标准的SpringMVC这个Java Web工程怎样自动抓取最新源码、测试、打包和部署, 第二个例子演示目前我做的Winstore这个Python项目怎样实现自定义构建指令、在线升级、自动打包和自动部署。SpringMVC关于怎样写SpringMVC项目我这里就不去讲了,这里我构建了一个最简单的Web工...转载 2018-03-08 15:04:41 · 3831 阅读 · 0 评论 -
MongoDB 进阶模式设计
12月12日上午,TJ在开源中国的年终盛典会上分享了文档模型设计的进阶技巧,就让我们来回顾一下吧: 从很久以前,我就开始接触开源产品:从最开始的使用、受益者到后来的贡献者,到现在的热情推广者。现在,我是MongoDB的技术顾问。我的职责是为MongoDB的客户和用户提供MongoDB使用的一些最佳实践,包括模式设计、性能优化和集群部署方案等方面。今天的话题是进阶模式,所以我假设在坐各位至少是已经对M转载 2018-03-12 15:13:48 · 1041 阅读 · 0 评论 -
MAC上搭建Jenkins + Android + IOS自动开发部署环境
因为MAC是大小写不敏感的操作系统,很多Linux命令不支持,所以首先要创建大小写敏感的操作系统。设置静态IP打开”System Preferences…”点击”Network”设置静态IP设置Terminal在”Utilities”中找到Terminal,点击”Terminal”右击Terminal图标,选择”Options” -> “Keep in Dock”,使之固定在Dock上。点击菜单栏中转载 2018-03-13 14:35:58 · 2335 阅读 · 0 评论 -
dokuwiki安装使用教程(支持中文、editor.md、粘贴上传图片)
一、安装到官网下载合适的版本https://www.dokuwiki.org/在网站一栏输入:http://你的ip地址/Dokuwiki/install.php 在右上角选好语言,简体中文zh 然后会弹出这样的安装示意图,启用ACL(推荐) 根据上示意图,填写信息。分别填写超级用户,全名,E-mail,密码等信息。 安装结束后,为了安全,要删除install.php文件,然后再用...原创 2018-03-20 18:10:49 · 47316 阅读 · 2 评论 -
windows 10环境下 使用 msys2 + vs code 配置 c++ 的编译环境
不太多描述 msys2 与 vs code ,既然你需要安装 一种语言的编译环境了 ,你肯定对这两个不陌生;1. 先安装msys2; (下载多少位的msys2就安装多少位的 mingw,本人安装 32位的)下载连接地址:http://msys2.github.io/按照 官网文档,一步一步安装。2.修改msys 源(推荐修改)修改参考地址: https://mirrors...转载 2018-04-02 11:42:07 · 2737 阅读 · 0 评论 -
如何快速搭建系统原型
本文是我对现阶段学习和接触到的系统项目总结,将系统界面各部分模块化/组件化,编写了系统通用交互方案,旨在帮助交互设计师、项目经理通过通用方案可以根据项目需求快速搭建合适的系统界面。一、总体设计背景最近负责了多个系统的交互设计工作,在设计的过程中遇到了一些问题:界面布局应该怎么设计,这个功能怎么放,首页要放什么内容、这边放这些功能合适吗、弹窗展示是否合适……设计好了又发现需要个性化,开发成本较高,标转载 2018-04-19 19:05:59 · 15835 阅读 · 3 评论 -
Windows Git+TortoiseGit简易使用教程
以下是整理自互联网上关于git与tortoise的使用教程为什么选择Git效率很多人有一种习惯吧,什么软件都要最新的,最好的。其实吧,软件就是工具,生产力工具,为的是提高我们的生产力。如果现有的工具已经可以满足生产力要求了,就没有必要换了。生产效率高低应当是选择工具的第一位。历史开源世界的版本控制系统,经历了这么几代:第一代,CVS,开创性的产品,至今很多古老项...转载 2018-08-15 12:45:33 · 3841 阅读 · 1 评论 -
go微服务框架go-micro深度学习
一、整体架构介绍产品嘴里的一个小项目,从立项到开发上线,随着时间和需求的不断激增,会越来越复杂,变成一个大项目,如果前期项目架构没设计的不好,代码会越来越臃肿,难以维护,后期的每次产品迭代上线都会牵一发而动全身。项目微服务化,松耦合模块间的关系,是一个很好的选择,随然增加了维护成本,但是还是很值得的。微服务化项目除了稳定性我个人还比较关心的几个问题:一: 服务间数据传输的效率和安全性。二...转载 2018-12-05 17:44:30 · 5275 阅读 · 1 评论 -
go微服务系列
一hey,好久没有发博客了,最近换了新东家有点忙(其实是忙着学习,不是工作,毕竟为了money放弃了较擅长的java投向了go),很多要学的;这是在新公司接触微服务框架(micro框架)后的总结,在未来,我将会较深入的研究go和微服务,之后也会陆陆续续的发布一些文章,如果想直接查阅源码或者通过demo学习的,可以访问ricoder_demo。如何编写一个微服务?这里用的是go的微服务框架go ...转载 2018-12-05 17:51:39 · 2070 阅读 · 1 评论 -
TortoiseGit升级操作说明
TortoiseGit 升级操作说明一、安装下载安装 Git Windows 版:请参考《TortoiseGit安装说明》。下载安装 Git Linux 版:Linux下可以直接用yum install或者apt-get install 安装。二、开始使用请参考《TortoiseGit常用操作说明》注:这篇手册所有git操作在命令行下执行,windows下可以右键Git Bash ...转载 2019-06-19 14:30:01 · 2877 阅读 · 0 评论 -
GitHub 新手详细教程
这篇文章是我自己写的关于GitHub的内容,从我刚听到这个直到设置成功每一步都有详细的步骤来解释,其中有一些截图或者代码来自于网上。首先,我先对GitHub来一个简单的介绍,GitHub有一个很强大的功能就是,你在服务器上边可以创建一个库(稍后会介绍怎么创建),写代码是一件很重的任务,尤其是很多人完成一个很大的项目的时候,就十分的复杂,一群人一起来写某个项目,大家完成的时间,完成的进度都是不相同的...转载 2018-02-27 14:58:38 · 9284 阅读 · 2 评论 -
Jenkins 持续集成综合实战
Jenkins 是一款流行的开源持续集成(Continuous Integration)工具,广泛用于项目开发,具有自动化构建、测试和部署等功能。本文以 CentOS7 环境为例,总结了 Jenkins 的安装与配置、邮件功能使用,并接入阿里巴巴的著名开源项目 fastjson,以此演示 Java 项目(SVN+Maven)中 FindBugs/CheckStyle/PMD 等常用插件的使用、单元...转载 2018-02-26 19:50:56 · 1024 阅读 · 0 评论 -
互联网项目管理要点
互联网项目,会定一个计划发布日期,然而这个项目有个隐藏的实际合理发布日期。因为软件开发并不是一个直接添加资源就可以加快速度的过程,所以这个实际合理发布日期是在现实资源合理利用前提下一个客观存在的最可能早的完成时间。项目进展的过程,其实也是发现这个隐藏的合理发布日期的过程。 从管理的角度来讲,当然是尽可能的赶上计划的发布时间,或者尽可能快的完成项目。但是因为多方面因素的影响,项目管理是一个欲速转载 2012-05-11 17:05:00 · 903 阅读 · 0 评论 -
SQLITE3 使用总结
前序:Sqlite3 的确很好用。小巧、速度快。但是因为非微软的产品,帮助文档总觉得不够。这些天再次研究它,又有一些收获,这里把我对 sqlite3 的研究列出来,以备忘记。这里要注明,我是一个跨平台专注者,并不喜欢只用 windows 平台。我以前的工作就是为 unix转载 2011-09-23 14:36:34 · 4324 阅读 · 0 评论 -
清除VS2005的历史记录和禁用插件
一、清除历史记录有时候vs2005起始最近打开项目过多很想清除掉,找到一个清除方法,发上来和大家共享。手工操作方法:1)删除最近打开的文件运行regedit,打开HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\8原创 2011-08-10 11:38:30 · 2748 阅读 · 0 评论 -
彻底接管程序异常处理
1、SetUnhandledExceptionFilter可以设置异常处理函数过滤,就是可以在异常处理链中插入自己的异常处理函数。所以只要设置好我们的异常处理函数就可以捕获到Unhandled Exception。当然,时机一般选择在main函数开头或者是MFC程序的App::I原创 2011-08-05 15:32:08 · 3191 阅读 · 0 评论 -
优化UI体验:程序启动、页面切换、数据加载、UI响应
前言:整个3月份一直忙于项目的最后收尾,经历了改进性能优化的方方面面,从程序启动、加载数据、界面初始化 Activity各种生命周期的状态调整等。今天终于给出了性能提升后,相对稳定的版本,所以开始泡杯茶、认真的总结一番。正文:首先,若性能优化过早,则会由于后期的频繁改动,让你的费转载 2011-07-19 12:59:09 · 2668 阅读 · 0 评论 -
经典-DLL导出类避免地狱问题的完美解决方案
DLL动态链接库是程序复用的重要方式,DLL可以导出函数,使函数被多个程序复用,DLL中的函数实现可以被修改而无需重新编译和连接使用该DLL的应用程序。作为一名面向对象的程序员,希望DLL可以导出类,以便在类的层次上实现复用。所幸的是,DLL确实也可以导出类。然而事实却没这么简单,导出类的DLL在维护和修改时有很多地方必需很小心,增加成员变量、修改导出类的基类等操作都可能导致意想不到的后果,也许用户更新了最新版本的DLL库后,应用程序就再也不能工作了。这就是著名的DLL Hell(DLL地狱)问题。DLL地转载 2010-08-19 13:12:00 · 1270 阅读 · 0 评论 -
SVN合并(merge)的使用
分支用来维护独立的开发支线,在一些阶段,你可能需要将分支上的修改合并到最新版本,或者将最新版本的修改合并到分支。 此操作十分重要,在团队开发中,如果你是SVN 的维护者此环节可以说是必不可少,因为团队开发中如果使用了分支,那样合并分支到主干、或者分支合并分支的操作是必须的。 如果不使用分支,直接在主干上修改的话,主干版本可能会变得十转载 2010-05-12 17:45:00 · 1629 阅读 · 0 评论 -
Windows平台安装Bugzilla
3. 安装Active Perl运行ActivePerl-5.8.8.817-MSWin32-x86-257965.msi安装Perl. 全部选择默认值即可. 安装完成后, 用cmd命令进入操作系统的命令行下. 依次输入如下的命令:ppm(回车)rep add Bugzilla http://landfill.bugzilla.org/ppm(回车)install AppConfig(回车)ins原创 2009-06-30 21:31:00 · 1677 阅读 · 0 评论 -
VC2008中影响exe大小和速度的全部编译选项
我再次强调,完全脱离编程环境的C/C++学习方法,不是好的方法,现在所谓的环境中立理论就是“什么都不学”理论,VC、GCC,主流的就两个,精通其中一个就能吃遍天下,教材里就应该选择一个大讲特讲! 作为VC的代表,今天我给大家全面介绍VC中的编译器选项,全面介绍不需要,MSDN里从头到尾都介绍完了,今天我只讲对生成的exe文件大小和速度有影响的。 用VC就得用IDE,转载 2013-04-18 10:43:53 · 1070 阅读 · 0 评论 -
检查表及总结 - 《代码大全》
设计设计是否经过多次迭代,并最终决定了最好的一个?是否同时使用自上而下和自下而上的方法来解决设计问题?类与类之间的交互关系是否已经设计为最小化?设计被划分为层次吗?你对把这一程序分解成为子程序,包和类的方式感到满意吗?程序是不是易于维护?设计是否精简?设计出来的每一个部分都绝对必要吗?整体而言,你的设计是否有助于最小化偶然性和本质性的复杂度吗?类的设计你是否把程序中的类都看做是转载 2016-08-01 10:24:02 · 1412 阅读 · 0 评论 -
cocos游戏开发流程
作者:Yop链接:https://www.zhihu.com/question/39663501/answer/82576709来源:知乎著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。公司的开发流程在这里简单描述一下它,并列出它给我们带来的好处。1、双击一个应用建立一个全新工程1)这个工程包含了基本的 UI 工程,有基础的 UI 结构和转载 2018-01-29 21:39:32 · 1812 阅读 · 0 评论 -
SWIG学习总结(翻译,自己理解为辅)
官网:http://www.swig.orgSWIG介绍SWIG (Simplified Wrapper and Interface Generator) ,即简化包以及接口生成器,为脚本语言(tcl,perl,python等)提供了C和C++的接口。SWIG在1995年在Los Alamos National Laborator为开发一个用户接口应运而生,我的毕业设计外文翻译转载 2017-12-27 12:09:07 · 21568 阅读 · 1 评论 -
TARS快速入门(NodeJs)
1 前言一个NodeJs应用程序框架需要关注很多问题,如自动发布、多机部署、负载均衡、监控报警、日志的输出与管理、服务异常重启等等,而Tars应用程序框架就提供了解决这些问题的一整套方案。Tars是腾讯从2008年到今天一直在使用的后台逻辑层的统一应用框架TAF(Total Application Framework),目前支持C++,Java和NodeJs三种语言。tars-node转载 2017-11-17 14:16:41 · 9183 阅读 · 0 评论 -
经典游戏服务器端架构概述 (1)
架构的分析模型一. 讨论的背景现代电子游戏,基本上都会使用一定的网络功能。从验证正版,到多人交互等等,都需要架设一些专用的服务器,以及编写在服务器上的程序。因此,游戏服务器端软件的架构,本质上也是游戏服务器这个特定领域的软件架构。软件架构的分析,可以通过不同的层面入手。比较经典的软件架构描述,包含了以下几种架构:运行时架构——这种架构关心如何解决运行效率问题转载 2017-09-14 20:55:43 · 23058 阅读 · 0 评论 -
深入浅出开源性能测试工具Locust
在《【LocustPlus序】漫谈服务端性能测试》中,我对服务端性能测试的基础概念和性能测试工具的基本原理进行了介绍,并且重点推荐了Locust这一款开源性能测试工具。然而,当前在网络上针对Locust的教程极少,不管是中文还是英文,基本都是介绍安装方法和简单的测试案例演示,但对于较复杂测试场景的案例演示却基本没有,因此很多测试人员都感觉难以将Locust应用到实际的性能测试工作当中。经过一段转载 2017-08-07 20:34:52 · 2282 阅读 · 1 评论 -
写程序很难之logstash之file input插件实现分析
前言写程序有时候真的有点难,要考虑各种情况。应用在运行中,会不断生成日志文件。假如要实现一个日志收集的工具,不考虑其它的分析功能,只考虑收集,有哪些方面要考虑的?首先看下一般的log框架是如何输出日志的:可能是这样的:a.log.1, a.log.2, a.log.3, a.log.4, a.log.5 循环输出;可能是这样的: a.2014-5-5.lo转载 2016-08-31 23:50:20 · 1031 阅读 · 0 评论 -
一致性Hash问题总结
作者:陈章义链接:http://www.zhihu.com/question/39311007/answer/80724939来源:知乎著作权归作者所有,转载请联系作者获得授权。特别是当memchache的节点很多时,除非类似于算md5,否则很难保证不碰撞。不冲突的hash算法是不存在的, 只要虚拟节点够多, 保证在概率上每个真实节点的负载是相等的就好了。存转载 2016-08-05 20:02:07 · 6111 阅读 · 0 评论 -
代码审查清单
常规项代码能够工作么?它有没有实现预期的功能,逻辑是否正确等。所有的代码是否简单易懂?代码符合你所遵循的编程规范么?这通常包括大括号的位置,变量名和函数名,行的长度,缩进,格式和注释。是否存在多余的或是重复的代码?代码是否尽可能的模块化了?是否有可以被替换的全局变量?是否有被注释掉的代码?循环是否设置了长度和正确的终止条件?是否有可以被库函数替代的代码?是否有可以删除的日志或调试代码?转载 2016-08-01 11:12:54 · 1900 阅读 · 0 评论 -
Windows下Bugzilla安装
Bugzilla是一开源Bug Tracking System,是专门为Unix定制开发的,安装本很困难。在Windows平台下安装,更为困难。下面简单向您介绍如何在Windows平台下配置和搭建Bugzilla。(当然,更简单的办法是放弃Bugzilla, 改用Bugzero) 一. 安装MySQL数据库: 下载 MySql 4.x: http://www.mysql.com/原创 2009-06-30 21:31:00 · 1071 阅读 · 0 评论