自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(296)
  • 资源 (18)
  • 收藏
  • 关注

原创 [2023.09.16]: Yew的Hydration的底层逻辑3问

今天是周六,周末的事情感觉比平时都多,所以也没有写代码。所以打算结合这几天开发Yew应用的经历,聊聊Yew的Hydration。

2023-09-16 23:49:11 83

原创 [2023.09.15]: Yew SSR模式下的条件编译问题

昨天才写了[Rust的条件编译](https://blog.csdn.net/firefox1/article/details/132885756),没想到这个问题还没完。昨天我还为它的强大而赞叹不已,自以为对它了解了八九成,然而今天我才猛然意识到,这个里面的深度远超我的想象。我估计,我现在只了解其中的冰山一角吧。

2023-09-15 23:39:01 322

原创 [2023.09.14]: Rust的条件编译

关于条件编译,我的记忆是10多年前,写C#的时代了,最近10年写Python和Javascript代码,虽然Javascript中也可以通过插件实现条件编译的效果,但是用起来太憋足了。

2023-09-14 17:53:13 544

原创 [2023.09.13]: Rust Lang,避不开的所有权问题

Rust的所有权问题,在我学Rust的时候就跳过了,因为我知道这玩意儿没有场景就不好理解。没想到场景很快就出现了。在开发Yew应用组件的时候,涉及到了事件,闭包,自然就引出了所有权问题。话不多说,下面让我们直接进入代码场景,去体验并了解Rust的所有权机制吧。

2023-09-13 17:22:18 493

原创 [2023.09.12]: Yew应用开发的第一个hook--use_state

Yew的SSR模式推荐使用function_component组件,并且在function_component中使用hooks。其中,我使用到的第一个hook是use_state。use_state的设计意图与React中的useState非常相似,都是为了保存并修改当前的状态。然而,由于Yew是用Rust语言实现的,所以在具体使用上还是有一些差异的。

2023-09-12 17:50:18 488

原创 [2023.09.11]: Yew的SSR中的Cargo.toml配置

由于各种原因,我最后还是打算把Yew应用的开发从csr模式转成ssr模式。没想到这里面的水还是挺深的,这里面的Cargo.toml配置包含的信息量之大,着实让我头疼了一番。

2023-09-11 22:46:48 256

原创 Yew应用中如何获取<textarea/>的值?

当我在开发Yew的组件时,我发现自己总是无法摆脱ReactJS的思维模式。这不在获取中的值时,我脑海里浮现的代码是这样的:

2023-09-08 23:22:52 251

原创 Rust Yew应用开发的事件初探

在Rust的世界中有一个叫Yew的框架,它借鉴了React的思想。我的React代码也写了不少,今天就聊一下我个人对Yew应用开发中事件相关部分的体验。

2023-09-06 11:10:05 810

原创 Rust的derive思考

这几天在Yew的学习实践中,发现derive中的参数中包含了yew自己的东西,比如yew::Properties。习惯使用#[derive(Clone, Debug, PartialEq)]之后,发现还有新的成员,这让我好奇起来。

2023-09-04 17:20:59 864

原创 创作的魔力

趁着周末的最后几个小时,我拿起了斧头和电转,改良了一下鸟子们的站桩。这个过程别提多带劲儿呐。代码写多了,动手做一些实体活儿,这个感觉就是不一样啊。

2023-09-03 21:38:31 64

原创 Rust的模块化

Rust的模块化,要从入口文件说起。

2023-09-02 15:04:31 793

原创 代码中的3种错误-思考及应对方法

我们聊到了代码中的3中错误。今天我想在具体的代码上讨论如何应对这3中错误。

2023-08-30 22:35:01 134

原创 代码中的3种错误

我们只有了解了代码中的错误类型,才能采取合理的措施加以处理。

2023-08-28 21:54:06 129

原创 从函数的角度来看TDD开发

从函数的角度看TDD开发

2022-03-18 14:09:34 231

原创 用semver解析版本号

使用semver库来获取最大版本号

2022-03-10 23:02:44 803

原创 驾驭单元测试漫谈

单元测试,说起来简单,做起来难。写多了,会耽误项目进度不说,后期维护起来也难;写少了,起不了作用,变成了花架子。我之前提出的一个观点是单元测试和代码的设计有关系,也就是说,单元测试和个人的开发经验,写代码的水平有关。换言之,张三在项目里的时候,单元测试可能做得好;李四来了项目,单元测试可能就做的不好。那我们来看一下单元测试的定义:单元测试(模块测试)是开发者编写的一小段代码,用于检验被测代码的一个...

2020-10-16 22:32:08 155

原创 数据库系统三级模式之“外模式”

我是做开发的,所以我更关心数据库系统的外模式。众所周知,数据库系统的三级模式为:外模式,模式(概念模式),内模式。应用程序依赖于外模式,独立于模式和内模式;一个数据库系统可以有多个外模式,而一个应用程序只能使用一个外模式。模式(概念模式)是数据库设计的中心。而内模式依赖于模式,独立于外模式和存储设备。这样划分的目的,想必大家都明白,是为了提升数据库系统在设计和维护过程中的稳定性,减小或者消除数据库系统局部调整所带来的大范围的冲击。多年以前,那时候我还在做C/S模式的应用系统开发,客户端的数据大都是通过

2020-09-10 11:30:00 2237

原创 从3个判断来进行异常处理

“可用性”是指系统在运行过程中,对各种异常的响应及其响应的量度。这些异常包括但不限于,网络异常,底层系统异常,调用第三方功能模块引入的异常,以及测试未覆盖到的代码本身的错误。从代码层面,“可用性”主要关注下面几点:后台Api的调用第三方功能模块的调用事务处理从代码层面,“可用性”的目标包括:不会影响到其它模块的正常运行不会产生错误状态能够帮助恢复错误既然从代码层面出发,那么首先要保证代码的基本健壮性,能够通过各种语言的lint工具扫描(规则可以根据项目的实际情况来顶)。稍微

2020-09-04 16:21:21 202

原创 基于构件的软件开发模型漫谈

基于构件的软件开发模型为我们带来了很大的成功,个人认为其背后的原理是构件中成功的商业价值能够被不断复制,因而带来更大的商业价值。“复制”不但能够降低开发成本,还能够提高单位产出,提升系统的整体稳定性,降低bug率。以开发一个App为例,Swiper,ScrollView,Image等等都是常用构件,我们通常以这些构件为基础来实现复杂的商业逻辑,从而产生价值。在这个过程中,我们对实现Swiper和ScrollView的成本几乎为0(当然可能需要一些license费用)。我们的成本主要集中在实现复杂的商业逻

2020-07-30 21:18:29 2390

原创 从模块的耦合程度谈程序设计

在结构化设计中,模块是设计的最小单位,模块之间的关联程度,用耦合度来表示。模块之间的耦合度越高,模块的独立性就越差,后期的维护成本也就越高。因此,在程序设计过程中,我们追求的是低耦合度。耦合度从低到高:非直接耦合数据耦合标记耦合控制耦合外部耦合公共耦合内容耦合(高级语言一般不会涉及到这里)非直接耦合是模块之间,通过控制层调度发生关联关系,给一段reactjs的代码:import getUserInfo from './libs/getUserInfo'import { getDat

2020-07-25 22:44:06 493

原创 聊一聊代码中的抽象

抽象是编写代码的基础,有效的认识代码中的抽象,对我们做设计模式和架构的选择都有好处。据我所知的抽象分为3种:过程抽象数据抽象控制抽象过程抽象过程抽象是最常用的一种抽象,它是消除系统中重复代码头号方法。例如,在一个App的页面上,当页面打开时,会加载数据;在App重新唤起时,会重新加载数据;当用户点击某个按钮时,会加载数据;面对这种情况,我们通常会把这段代码抽象出来,将其放在一个函数中。从而避免了这段代码在多个事件中重复出现的情况。这样做的好处是当数据加载的逻辑有变化时,修改的地方会被限制

2020-06-10 15:01:40 747

原创 Taro使用工作笔记-build命令

最近在我的工作环境中使用taro的build出了问题,虽然最终找出的原因都不是taro本身的问题,但是还是想把探索过程中所接触到的文件记录一下,为的是分享给未来的自己,如果对你有用,那真是太巧了。本机使用的是nvm,当前应用的node版本为8.15.1,因此taro的全局安装目录在node/v8.15.1/下。Taro build命令的入口node/v8.15.1/lib/nod...

2019-12-07 11:54:46 838

原创 ESLint - 构建强壮的Javascript代码

我记得10年前,我用Javascript只是为了补充一下Asp.net上AjaxControl的动态数据加载,而现在Javascript几乎成为了前端开发的主流语言。如果仍然用10年前那种把Javascript当成小脚本的方式来完成现在的前端项目,那么任何一个项目都可能变成一个噩梦。为什么是ESlint众所周知,Javascript是一种动态语言,其优势很明显,缺点也众所周知(参考...

2019-09-24 12:28:53 449

原创 回顾我的设计模式应用

在多个项目里面工作之后发现,离开了所谓的设计模式,项目照样活得好好的,至少在那一刻看上去是那样。我接手的第一个项目,医院信息管理系统,是在PowerBuilder6.5上开发的。虽然我在这个系统上写了很多的代码,但是现在总结起来不外乎下面的工作在窗体加载完成后从数据库中抓取数据 通过界面的按钮事件,对界面的数据进行处理 通过界面的按钮事件,将界面的数据提交到数据库 通过界面的按钮事件,...

2019-09-16 17:43:16 143

原创 软件架构风格 - 虚拟机风格

虚拟机风格包含解释器 基于规则的系统解释器侧重于自定义,灵活的功能特性。这些功能特性通过解释器将其转换为目标平台上的可执行代码。基于规则的系统侧重于规则集,规则解释器,常见于人工智能领域和DSS(Decision Support Design)中。相较于“数据流风格,调用返回风格,独立构件风格“,虚拟机风格搭建的是运行规则/语言/自定义描述的平台,而非实现具体的业务逻辑。...

2019-09-03 15:35:06 4320 1

原创 软件架构风格 - 独立构件风格

独立构件风格包含进程通信 事件驱动系统形如其名,独立构件风格强调的是构件的独立性。构件之间的耦合度应该是非常低的“非直接耦合”或者“数据耦合“。个人觉得,微服务就是”独立构件风格-进程通信“的典范。事件驱动系统,强调的是非直接调用,它是信息和一组可扩展的信息处理器的集合,信息处理器之间的关系是“非直接耦合”,而信息和信息处理器之间的关系通过框架来实现。独立构件风格的优势在于,由于...

2019-08-31 15:09:51 3233

原创 软件架构风格-调用/返回风格

调用返回风格包括主程序/子程序 面向对象风格 层次结构风格个人觉得这是最常用的一种风格,因为它符合顶层分解的逻辑。每一个抽象层次都会通过向下调用的方式来实现它所定义的功能。 采用调用返回风格的系统的配置比较多,在实践中,我们希望通过配置来实现灵活的调用,即将低层次的结构在有需要的时候随意替换掉。但是,替换没有那么简单,首先,出于动机方面的原因,一旦项目上线,没有人愿意去动线上的代码;其...

2019-08-28 22:30:10 3724

原创 软件架构风格-数据流风格

个人认为数据流风格是软件架构中最简单的风格,它是顺序执行的,可能你在不经意间已经使用了这种风格。数据流风格包含:批处理 管道过滤器批处理强调数据的完整性,过程没有交互。每一步都是一个独立的程序,每一步之间通过数据传输来进行交互,后一步必须在前一步完成时才能开始。管道过滤强调数据的转换,输出的数据项相较于输出的数据范围,可能增加也可能减少,过程可交互。管道过滤器分为两个部分,过滤器和...

2019-08-26 16:23:29 3311

原创 系统架构师-结构化开发方法

结构化分析研究“物质环境”:当前系统的数据流图,包括人和自动化流程 建立系统逻辑模型:将自然流数据转换成等价的逻辑数据流图 划清人机界限:确定哪些由自动化完成,哪些由人工完成结构化分析的输出:分层的数据流图 数据字典 加工逻辑说明 补充材料数据流图外部实体:目标软件系统之外的人或者系统;也可以是数据的发源地或者归宿地 数据存储:文件存储/数据库存储 加工:描述...

2019-08-13 17:18:47 260

原创 Javascript - 移动H5页面禁用客户端自带的下拉刷新同时实现页面滚动

关键字:移动端,无下拉,可滚动页面在做移动端的H5页面时,由于手机自有的特性,整个页面具有下拉刷新功能。但如果我们仅仅是做展示页面,不希望下拉刷新,但同时也想保留整个页面的正常上下滚动,该如何做呢?实现要点禁用body上的touchmove事件 设置恰当的元素布局 使用matrix实现页面正常上下滚动禁用body上的touchmove事件document.body.add...

2019-05-31 08:58:35 8451 3

原创 Python 3中的json.dumps,会将中文转换为unicode编码后保存

先把这次踩坑的结论放在最前面1. Python 3已经将unicode作为默认编码2. Python 3中的json在做dumps操作时,会将中文转换成unicode编码,并以16进制方式存储,再做逆向操作时,会将unicode编码转换回中文这就解释了,为什么json.dumps操作后,得到的字符串是\uXXXX。谢谢@benpaodexiaowoniu。在python3中,e...

2017-10-24 16:42:43 38176 5

原创 关于系统架构的自问自答

最近,由于工作的原因,有了不少时间来思考系统架构。这个话题我也不止一次思考,但每要整理时,总是感觉没有头绪,无从下手。因此,决定通过自问自答的方式,通过一点一滴,希望有所进展。除此之外,在这里整理的另外一个目的,是为了将我的想法放在开放的环境中,希望能够得到大家的指正。问:有没有更先进的架构答:没有更先进的架构,只有更加合适的架构。这个问题是我最近能够想起的最近我遇到的

2017-05-15 16:48:16 794

原创 Flask + mod_wsgi + Apache on Windows 部署成功(随时接受提问)

前言说是前言,纯粹就是吐槽。如果你赶时间,完全可以跳过这部分,我保证不会在这里隐藏任何有用的内容。人上年纪后,可能冲劲不足,我花了大概两周的时间才成功的将flask部署到windows上。还好没有放弃,最终找到了答案。不过这也说明我在开源软件的应用和配置上还很差劲呀,当我看到要用VC10的C/C++编译器编译源代码时,头都大了。你说我们这些平时习惯了Vistual Studio编译的,

2015-06-10 11:15:03 27305 33

原创 项目经理的素质

这几天看了几本管理方面的书,偶有启发,想谈谈项目经理应该具备的素质。其实也是根据自己的情况来写,希望大家多多指教。以前只知道项目来了,做计划,和客户确认计划,然后按照计划交货。只要交货了就万事大吉。而在这个过程中,我所干的似乎就一件事,和时间赛跑。每次提交版本后,整个人都觉得非常的累。然后又稍作休整(有时连休整的时间都没有,因为常常是一个项目还没有结束,另外一个项目有来了),接下一个项目,

2014-12-15 00:15:36 1419

原创 总结之总结

这周都在为前一段时间的工作进行总结,虽然没有时间压力,但是还是让我感觉烦恼,特别是在开始阶段,面对一堆资料无从下手,时间过半,还是没有清晰的思路。现在总结虽然写完了,但还是有些不爽,想在这里吐吐槽,希望日后的总结工作能够更加顺利一些。现在回想起来,在总结开始的时候,我有几个疑惑,这次总结的目标是什么,应该达到什么效果,甚至还在纠结是用word来写还是用ppt来写或者直接写在我常用的everno

2014-11-13 17:09:43 1102

原创 Python Flask 在Sina App Engine (SAE)上安家

早就听说了Python的大名,随着的编程语言的理解加深,越发觉得动态语言的威力--真大呀。虽然,整个过程都很简单,但是对于一个新手,特别是从传统C#, Asp.net, IIS阵营过来的开发人员来说,什么都是第一次接触。希望我的这篇文章能够成为你Python学习道路上的一盏小灯。

2014-07-29 14:27:19 10040

原创 MVC来源戏说

好久没有来CSDN写博客了。老朋友们可都好。这篇Blog本来是我的个人笔记,在整理过程中,突发奇想整出来的。之所以叫戏说,是因为内容的由来有点把玩儿的味道在里面,限于本人有限的水平和知识面,还望大家多指教。使用数据结构,将后台和前台隔离开,这种方式不仅在MVC中适用,在其它的设计中也是一个根本的原则。在这里,DataModel作为View和Service交换数据的一

2014-03-26 22:30:18 932

原创 代码中的地雷

以前听说过软件系统中有定时炸弹,今天我领教了代码中的地雷。 所谓地雷,它的特性是安装容易拆除难,下面段代码完全符合地雷的特性。 public static void GetAvail(SegmentType segment, out int avail){ if(segment.StartDate n.MaxAvail = 0); //....}这是一个底层方法,依赖于它的代码较多,即它的扇出较大。这个函数的本意是获取avail,但在获取avail的同时染指了

2010-06-19 22:12:00 928

原创 Cache 设计概要

Cache设计需要考虑以下问题 1. Cache的数据同步问题 2. Cache的更新问题 对于数据同步,必须考虑多线程相关技术,要点有 1. lock关键字 2. ReaderWriterLock/ReaderWriterLockSlim 3. InterLocked 4. Mutex 5. Monitor 对于数据更新,要考虑以下问题 1. 自动更新(包括:有效期的使用)

2010-05-04 16:00:00 810

原创 Form的设计原则

界面元素V用于显示数据M; 类P用于处理数据M,包含以下行为: 对M的构造 对M的有效性验证 界面元素V中的用户事件只能作用于P Form作为界面元素V的容器,只能作用于P,而不是V。   最近在学习SmartClient,正在逐步将其应用于系统开发中。很多情况下不能够直接使用smartclient提供的框架,但是其中的思想还是值得借鉴。 希望各位多多指教。

2010-04-24 16:03:00 1033

Rust语言入门课程设计

该课程设计除了介绍Rust语言的特点,环境搭建,基本语法外,还介绍了其高级特性,例如,闭包,trait,泛型和模式匹配等。

2023-10-16

Rest Restful 基于rocket服务搭建代码

Rest Restful 基于rocket服务搭建代码 代码包含的实践用例: 1. restful post, get, put, delete方法 2. 基于rocket的中间层开发,用于日志处理 3. docker部署开发用的postgres 4. async 函数开发 5. async 函数递归调用 6. 路由参数和返回值的序列化 7. 错误处理 8. 数据库连接池 数据库/持久化层:postgres 使用的第三方库: rocket, tokio, tokio-postgres, deadpool-postgres, log, simplelog, futures, async-recursion, serde 更多细节请移步我的blog:Rust Rocket: 构建Restful服务实战,https://caozy.blog.csdn.net/article/details/133386837

2023-10-15

Rust Yew 前端+后端 源代码,帮助大家快速了解和掌握Rust Yew的SSR的前端开发和基于Rocket的后端开发

这个资源是Rust的源代码压缩包,供大家了解Rust Yew的前后端开发。 资源中的代码非常简洁易懂,虽然离商用场景还有一段距离,但是涵盖了前端的组件搭建、事件通信和反向代理,以及后端的Restful API的路由、功能实现和数据库访问。此外,还包括了postgres数据库的初始化脚本和docker部署脚本,方便您快速搭建环境。 希望这个资源能够帮助大家更好地了解和掌握Rust Yew的开发技巧,帮助大家快速入门。 如果大家对资源的使用有问题,请留言,我尽量当日解答。 关于该资源包的详细介绍,请移步至我的这篇博客 [2023.09.21: 源码已上传,供大家了解Rust Yew的前后端开发](https://caozy.blog.csdn.net/article/details/133127078)

2023-09-21

FileManager 1.1

类似于XCopy,用于文件拷贝管理。新增更能为: 可以修改已经保存的拷贝列表

2009-11-08

wsdl.exe-生成wsdl的代码

wsdl.exe-生成wsdl的代码。wsdl.exe-生成wsdl的代码。

2009-10-11

C# Code Analyser 1.2.3

修正了调用关系分析中的bug. 新增功能: 可以调节窗体的大小。

2009-01-07

C# Code Analyser 1.2.1

添加了函数标识功能。当函数的调用关系分析完成后,在Function Name文本框输入函数名称,点击“标注”按钮,就可以看见函数在调用关系中的加粗显示,这个功能可以帮组你更有效的分析函数调用的关系。 相关信息,请参见我的blog:http://blog.csdn.net/firefox1/archive/2008/12/27/3620988.aspx

2008-12-27

Code Analyser 1.1.3

帮助分析C#文件中的函数及属性的调用关系。 这个版本中优化了算法,修正了关系分析中的一些bug,提高了分析速度。 使用方法:参见 http://blog.csdn.net/firefox1/archive/2008/12/21/3574078.aspx

2008-12-24

Code Analyser 代码分析器

前一个版本名称叫CodeHelper,觉得这个名字没有能够正确反映出这个工具的功能,故现在改名为Code Analyser。新版本修正了前一版本在分析函数时遇到的bug,并能够分析属性。

2008-12-21

CodeHelper 代码调用分析器

版本号1.0.1.1 解决了函数分析时存在的部分问题。

2008-12-18

C# 代码分析器 帮组分析代码

分析出在类文件中,代码的调用层次。现在还是一个简单版本,只能够分析出类文件中函数的调用层次,不能够分析出属性的调用层次。先将这个简单版本放在这里,毕竟这个功能够我个人用了。如果有人支持,请冒个泡,我将会继续前进。 这个工具的设计目的是帮助项目经理检查代码,帮助程序员读代码 版本号1.0.0.1 修正历史: 修正了处理递归调用时,抛出异常。 不能正确解析函数定义 希望大家继续支持

2008-12-16

C# 代码分析器 帮组分析代码

分析出在类文件中,代码的调用层次。现在还是一个简单版本,只能够分析出类文件中函数的调用层次,不能够分析出属性的调用层次。先将这个简单版本放在这里,毕竟这个功能够我个人用了。如果有人支持,请冒个泡,我将会继续前进。 这个工具的设计目的是帮助项目经理检查代码,帮助程序员读代码 版本号1.0

2008-12-15

copy manager

将一个文件夹下的所有文件和文件夹拷贝到目标文件夹下,在拷贝的过程中,可以指定只拷贝指定扩展名类型的文件 (用于没有安装mfc类库的电脑)

2008-11-30

copy manager

将一个文件夹下的所有文件和文件夹拷贝到目标文件夹下,在拷贝的过程中,可以指定只拷贝指定扩展名类型的文件

2008-11-30

Debugging Microsoft® .NET 2.0 Applications

关于Debug的书籍

2008-07-20

SubSonic

这是一个开源的数据处理框架,来至于www.subsonicproject.com。

2007-11-18

Dnn修改器4.x修改工具1.1.2

添加了tabid显示,可以在修改站点时,对应当前网页路径中的tabid来找相应的htmltext,并直接对其修改

2007-11-02

Dnn修改器4.x修改工具1.1.0

添加了remove strong标签 添加了输入额外查询条件的文本框

2007-11-01

Dnn4.x修改工具

该软件是我在开发Dnn项目时,为了加快项目进度的产物。个人认为很有用处。当然每个人在开发dnn项目的过程中都会遇到各种各样的问题,所以我把源代码也附上,大家可以根据自己的需要添加新的功能。我也希望大家能够充分发挥开源的功能,将自己修改后的版本也贡献出来,这样我相信,这个dnn修改工具一定会做的丰富多彩的。

2007-10-24

Dnn权限修改器

Dnn权限修改器能够帮助你,在面对站点页面多,权限设置复杂的情况下,轻松设置页面和模块的权限。<br>该程序的开发环境为.net 2.0;测试的dnn环境为4.x<br><br>在使用该程序之前,需要在config文件中设置数据库的连接信息<br><br>希望大家能够提出宝贵意见。<br>联系QQ:64528619

2007-09-20

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除