分类
  • 性能与扩展不可兼得

    最后编辑于 : 2018-06-06 09:54:37

    作者 : FEICEN

    本人平时习惯于使用高扩展性的模式进行软件开发,并且在最近的一些小工具库、助手库中也使用这样的进行开发。运行起来的时候发现速度不理想,于是我减少了那些单一职能的接口和类,将他们与主类进行强耦合,去掉了一些可以动态组装策略的逻辑,让每个类的处理能力单一化。这时候再跑起程序来发现速度快了很多。于是得到一个结论就是,性能与扩展不可兼得。当你的一段代码只服务一种场景的时候,分支一定是最少的,线性的逻辑是最快

    阅读 : 100
    评论 : 0
  • JSON Schema

    最后编辑于 : 2018-03-15 13:16:31

    作者 : FEICEN

    背景本人一开始并不知道有这么个东西。为了约束每个开发人员的工作流程,防止出现不合规范的开发模式出现,我着手开发了一些NodeJS项目,用于搭建项目脚手架。但是为了能够运行这些NodeJS项目,又需要写配置文件(json格式),那么程序员们的工作从写代码转为了又要写代码,又要背配置,工作加重加难了。如果有什么方式,能够对Json文件进行智能提示和备注说明,那可以大大减少工作的难度了。就像xml有dt

    阅读 : 147
    评论 : 0
  • 如何防止交叉引用

    最后编辑于 : 2018-02-07 14:39:01

    作者 : FEICEN

    如何防止交叉引用前言在大部分规划的不是非常合适的项目经常能看到这样一种现象考虑到业务的独立性,创建一个新的 库/包 来实现某个业务因为该业务需要引用到一些其它业务,所以加入到 引入/依赖项 中去(比如扩展了游戏业务模块,他依赖于用户模块,从用户模块中加载用户的部分信息)其实这种开发模式本身没有什么问题,无论我参加哪个项目,几乎清一色使用这种模式进行开发的但是 ,在某个项目中,同事抛出了一个问题我现

    阅读 : 160
    评论 : 0
  • 在Orchard中进行单元测试

    最后编辑于 : 2018-01-16 15:07:02

    作者 : FEICEN

    此文章面向已经使用Orchard框架进行业务开发,并对其基本概念已经了解的人。我们经常使用NUnit进行各种测试,每当调整一些代码的时候,使用NUnit可以很容易的进行回归测试等等,关于NUnit在这里就不再多说了,相信大家都熟悉。但是Orchard项目中有着非常复杂的启动过程以及依赖关系,特别是使用数据库的时候,通过阅读代码,我们很难在短时间内掌握到应该如何配置我们的测试项目数据库连接信息。其实

    阅读 : 218
    评论 : 2
  • Monaco Editor —— VSCode所使用的文本编辑器

    最后编辑于 : 2017-12-22 10:01:31

    作者 : FEICEN

    编写此文用于技术储备Monano Editor ,是微软家自己出的一个前端富文本框编辑器,从官网的介绍来看主要用于Code编辑器大名鼎鼎的VSCode就使用了这个控件(废话,都是微软自家的东西)暂时还没有具体研究,只是发现这货,就记录下来,也许以后有用官网地址 : https://microsoft.github.io/monaco-editor/index.html

    阅读 : 390
    评论 : 1
  • 初识Electron

    最后编辑于 : 2017-12-01 11:46:11

    作者 : FEICEN

    什么是ElectronElectron是一款通过javascript(nodejs)、css、html来构建跨平台桌面应用程序的框架。它的官网在这里 https://electronjs.org/ 著名的VSCode的UI便是基于这个框架开发出来的。它的跨平台,是基于用将一个谷歌浏览器嵌入了窗体而形成的web app,因此我们可以像开发一个web一样,开发app了。安装依然是npm的安装,分为局部

    阅读 : 196
    评论 : 1
  • Orchard中开发视图

    最后编辑于 : 2017-07-31 10:35:15

    作者 : FEICEN

    背景通过多次尝试,发现传统的_ViewStart + Layout的方法在Orchard中并不起作用。这可能与重写了Page渲染的框架有关。Orchard本身使用Shape这种概念进行视图的开发和渲染。具体方法定义ShapeBuilder接口,继承于IDependency(继承该接口的作用是IOC容器自动进行元件注册)以IShape作为返回类型创建面向页面的方法接口,如 IShape BuildI

    阅读 : 287
    评论 : 3
  • 命令模式

    最后编辑于 : 2017-06-01 19:59:35

    作者 : FEICEN

    命令,往往是从一个角色发出,通过指令执行者,对目标角色施加一组操作的过程。

    阅读 : 225
    评论 : 2
  • 金碟二次开发学习笔记 之 动态表单中的表单构建插件

    最后编辑于 : 2017-04-25 13:32:56

    作者 : FEICEN

    动态表单是金碟二次开发中,比较灵活的一种表单设计模板,当界面的功能不仅仅于对某个基础资料的增删改查,仅有列表和单一表单的时候,就可以使用动态表单来设计一个界面。动态表单与其它设计器一样从左边拖拉控件到窗体中进行页面设计的,但不同的是动态表单可以设计一个“表单构建插件”,通过该插件干预窗体的构建,以达到更加灵活的需求。通常的做法是通过在窗体中拖拉一个【面板】,来为自己所需要的特殊控件占据空间。然后可

    阅读 : 455
    评论 : 0
  • 轻量级ORM框架——Dapper.Reface

    最后编辑于 : 2016-11-12 08:58:53

    作者 : oscar

    Dapper.Reface是由Reface对超轻量级的ORM框架Dapper的一层封装,使得我们可以通过Attribute进行实体的定义。1、Attribute的使用框架内提供以下几个Attribute的使用:TableNameAttribute该特征用于定义在Class上,来定义该实体对应的表名:[TableName("sys_user")]public class User{}PrimaryK

    阅读 : 794
    评论 : 2