自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(32)
  • 收藏
  • 关注

原创 编程深水区之并发⑥:C#的线程池

绝大多数情况下,我们都应该使用CLR线程池,而不是直接操作Thread,本章节介绍直接操作线程池的ThreadPool,但实际开发中也很少直接使用它。

2024-08-09 20:31:50 897

原创 编程深水区之并发⑤:C#的Thread线程

Windows、Linux和MacOS三大操作系统的进程和线程机制,实现上有一些差异,但大体的原理是差不多的。本章节讨论的进程和线程,以Windows操作系统为准。

2024-08-09 20:24:37 828

原创 编程深水区之并发④:Web多线程

Node的灵感来源于Chrome,更是移植了V8引擎。在Node中能够实现的多线程,在Web环境中自然也可以...

2024-08-06 19:53:42 956

原创 编程深水区之并发③:Node.js的并发编程

在Node里耍多线程和多进程,会不会闪到腰?!

2024-08-06 19:45:31 743

原创 编程深水区之并发②:JS的单线程事件循环机制

如果某天有人问你,javascript是单线程还是多线程,Node.js是单线程还是多线程,你如何回答?

2024-08-05 16:05:32 711

原创 编程深水区之并发①:什么是并发编程

并发编程是一种让程序能够执行多个任务的编程技术,多个任务的执行时间有重合,如交替执行、同时执行等。相对于传统的从上到下依次同步执行代码,我们也称并发编程为异步编程。目前,常见的并发模型主要有两种,一是多线程模型,二是单线程事件循环模型。

2024-08-05 15:59:53 547

原创 彻底搞清楚SSR同构渲染的首屏

SSR同构渲染完美解决了服务端渲染和客户端渲染的问题,但它也增加了系统设计的复杂度。就一个首屏渲染,坑都多到你怀疑人生,很多兄弟都栽在这上面...

2024-07-30 13:52:47 520

原创 万字长文说说C#和Rust_Cangjie们的模式匹配

C#11新增列表模式后,这个从C#6就开始的特性,算是拼接好了模式匹配的最后一块拼图。对比Swift、Rust或Cangjie这类先天支持模式匹配的语言,能否一战?今天就来全面battle一下。Swift、Rust和Cangjie的模式匹配,一肪相承,这次对比,赶个热度,选取Cangjie。(Swift不熟悉,略懂Rust,据说Rust的模式匹配是抄Swift的?

2024-07-26 13:53:53 738

原创 热腾腾的,仓颉cangjie和C#的初战

花了一个下午快速浏览了一下仓颉(Cangjie)的文档。总体感觉,仓颉把现代编程语言的各种特征都融合在一起,称它为“缝合怪”一点都不夸张。没有历史包袱的确让它看起来很爽。由于目前还无法实际试用它,所以编译和运行性能还不好说。这里只是从语言层面做个简单对比,我选了最熟悉的C#。仓颉和C#的定位很相似,都是带有垃圾回收(GC)的静态语言。在这个领域,我认为C#是最优秀的(之一)。以下只是基本概念的对比,由于对仓颉了解不深,只是快速学习了一下,难免有误,仅供参考。另外,标题有些标题党了,没有引战的意思,只是语言对

2024-06-24 14:00:42 1319

原创 只有一个鸿蒙好?还是鸿蒙、安卓、IOS并存好?

无论如何,鸿蒙成为国内三大操作系统之一,是板上钉钉的事情,所有人都希望如此。但是,我不希望它变成“独一”,这是我非常明确的观点,开个玩笑话,“那又得多少程序员下岗!”。国内市场和环境,是鸿蒙活下来的依仗,但也是它走向世界的束缚。一方面有身上光环的影响,另一方面,也有前车之鉴。Symbian、WindowsPhone,都曾试图成为第三大操作系统,均以失败告终。尤其是WindowsPhone,多好一个操作系统呀。它们踩过的坑,鸿蒙能否安全通过?比如Symbian,在不同机型上的糟糕体验、木马职业经理人...

2024-06-23 12:40:13 496

原创 华为仓颉开发语言“可能”明天正式面世(2024年6月20日写下)

众多迹象表明,鸽了几次的华为仓颉开发语言,有望在2024华为开发者大会上正式面世,你的期待热情还在吗?

2024-06-20 12:41:18 1148

原创 C#13的属性更甜了,Java不要太羡慕

本文将为大家介绍C#13的属性语法优化,同时回顾属性的所有写法。众所周知,C#的属性相对于对标语言,比如说Java,是一个超级甜点。C#13更进一步,在属性的getter和settter中,引入了field关键字,表示后备字段(backing field),这样可以少写一行模板代码,更加的简洁,属性也更具有独立人格(更像一种独立成员了)。大家看一下面这段代码,是不是很爽?

2024-06-20 09:54:43 658

原创 Blazor的SSR服务端渲染是不是交互式的

从.NET8开始,Blazor引入了SSR服务端渲染,归功于MVC和RazePage的沉淀,虽然来得晚,但一经发布,就将Blazor推向了新的高度。从今年开始,Youtube上关于Blazor的优质教学视频,以肉眼可见的速度在增加,说明有更多人愿意学习和传播Blazor。Vue和Nuxt.js我都有在用,技术层面,我认为完全是可以去Battle一下的。大家不要停留在BlazorWebAssembly时代,现在Blazor对标的,是Next.js、Nuxt.js。SSR的东西不多,但如果你像我一样没用...

2024-06-19 09:49:55 2157

原创 调试了一下午,终于把tailwindcss搞进Blazor了

在Vue和Uniapp项目中使用tailwindcss后,实在是太香了,非常符合我这从XAML走过来的老程序员的手感,所以老想着在Blazor项目中引入。看了几个老外大佬的视频,调试了一下午,终于是捣鼓成功了。由于咱们Blazor项目不在node.js环境中,使用tailwindcss还是比较麻烦的,所以写篇文章分享一下。

2024-06-15 15:04:22 1079

原创 第壹章第15节 C#和TS语言对比-泛型

C#提供了泛型的完整支持,不仅在编译时,运行时仍然保留泛型的类型信息,同时提供了更加丰富的泛型约束和更加全面的协变逆变支持。TS的泛型,在语法表现形式上,和C#差不多,但本质上两者是不一样的。TS的泛型,和Java一样,使用类型擦除机制,泛型只存在于编译时,在运行时,泛型的类型信息会被移除。

2024-06-13 19:35:50 2228

原创 打破限制:C#13带来的革命性扩展特性

C#语言一直以其强大的功能和灵活性著称,其中扩展方法为开发者提供了一种便捷的方式来扩展现有类型。然而,扩展方法也有一些局限性,比如只能使用静态类、只能扩展方法。令人振奋的是,即将到来的C# 13可能会带来一次革命性的更新,解决这些限制,让开发者可以更自由地扩展实例成员、静态成员、属性成员和方法成员。扩展方法的局限性

2024-06-13 09:53:27 844 2

原创 第壹章第14节 C#和TS语言对比-委托事件(仅C#)

水一篇,因为《函数方法》章节已经说了,但那个章节比较长,知识点又多,可能有人会看不到。委托事件是C#中的一个难点,但我觉得,和TS/JS中的函数表达式放在一起时,委托和事件就变得很简单了。

2024-06-12 19:56:24 633 1

原创 第壹章第13节 C#和TS语言对比-原型(仅TS)

JS/TS中的原型对象和原型链是整个类型系统的底层原理,示例代码为JS,TS和UTS也是一样。实际应用开发中,尽少会碰原型,但听说面试时经常会问,我是纯野生程序员,没有面过,不清楚!

2024-06-09 22:01:01 437

原创 第壹章第12节 C#和TS语言对比-多态

多态概念比较抽象,我的经验是,不要去试图理解文字概念,我也没见过能用文字说清楚的,直接用代码干就是,熟悉几个套路用法,自然而然就明白了。

2024-06-07 21:01:57 698 1

原创 第壹章第11节 C#和TS语言对比-继承

C#中的继承很简单,但延伸到多态时,学习曲线会比较陡,而多态又是C#中非常重要的特性。TS的继承,底层通过原型链来实现,但都已经封装好,我们直接操作类,和C#差不多。而TS的多态,是鸭子类型兼容,很不习惯,好在前端开发应该极少会涉及,了解即可。

2024-06-06 21:39:14 696

原创 如果鸿蒙Next刚问世,就成为“上一代产品”,怎么办?

鸿蒙诞生时,有被动因素,但它不是无准备的应急产物。我们知道,鸿蒙一出来,就提出了万物互联、分布式的理念,在2019年,这绝对是领先的。但这几年,OpenAI带着一票生成式AI,发展实在是太快了,快到让人感觉这个世界好像马上要颠覆。几个业已成熟的操作系统,都在迅速跟上这波势头。万物互联,如果不加上AI前缀,2024年可能还不算落后,但明年就不一定。如果鸿蒙这次无法跟上,会不会发布时,就成为过去时?

2024-06-06 14:47:26 378

原创 第壹章第10节 C#和TS语言对比-接口

后端框架中,几乎处处皆接口,可以说是面向接口编程。它的主要作用有二,一是用于约束其实现类应该具有哪些功能或行为;二是利用其语法特性-多态,实现依赖注入IOC。本节主要说作用一,作用二在《多态》章节中说。TS引入了接口(JS没有接口,TS编译为JS后,接口不会生成代码),它也可以用于约束其实现类的行为,但因为前端很少使用类,所以这个功能很少用到。在前端,接口主要用于定义字面量对象的类型,和type类似,在纯后端人眼里,可能会觉得即奇葩又鸡嫩...

2024-06-05 13:18:36 425

原创 第壹章第9节 C#和TS语言对比-枚举

C#中,枚举本质上是命名的整数值常量,其值必须是整数型,数据结构上是值类型。而TS中的枚举编译后实际上是一个对象,通过立即执行函数来实现,它的值即可以是整数,也可以是字符串,比较多骚操作。

2024-06-05 13:12:48 221

原创 第壹章第8节 C#和TS语言对比-类

类的用法,C#和TS非常相似,UTS和TS基本保持一致。实际开发中,C#的所有代码都必须在类中,而TS的客户端开发,则很少会用到class,主要使用type或interface,为什么?正文解释...

2024-06-02 20:00:17 830

原创 第壹章第7节 C#和TS语言对比-函数方法

这节难度有点飙升,我把委托、事件、捕获、闭包、扩展方法等全放一块了。放一块的原因,就是为了让这些概念变得简单些。另外,关于函数和方法这两个名称,有些人觉得在全局使用时,叫函数;在类或对象中时,叫方法。我认为,两者是一个意思,可以互换。

2024-05-31 20:01:18 1162

原创 第壹章第6节 C#和TS语言对比-数组集合

本节比较长,但可以让我们一次性彻底掌握数组集合。编程的很大一部分工作,是访问和操作数据,而其中使用频率最高的数据形式,就是数组集合。C#毕竟是后端语言,所以提供了更加丰富的集合类型,而且还有非常非常非常强大的LINQ查询语法,而TS就相对简陋些,毕竟是前端语言。文末补充了元组,这玩意我很少用,具体原因详见正文...

2024-05-30 21:07:01 961

原创 第壹章第5节 C#和TS语言对比-字面量对象

无论在C#,还是在JS/TS/UTS中,万物皆对象。创建对象的方式有两种,一是通过类的实例化,二是直接通过字面量。JS/TS/UTS中,创建字面量对象非常普遍,JS中可以随意创建,且对象的属性和方法可以随意增减覆盖;但TS/UTS是强类型,必需为字面量对象定义类型,且对象的属性方法不能随意增减覆盖,TS/UTS中,定义字面量对象的类型,有两种方式,一是interface,二是type。建议使用type,本节以type为例,关于interface的使用,详见《接口》。而C#中,也通过匿名对象的方式来创建...

2024-05-29 20:53:09 477

原创 第壹章第4节 C#和TS语言对比-基本类型

基本类型,包括布尔、数值、字符/字符串、null、动态类型(any/dynamic)等最基础的数据类型,有时有叫原始类型,类型名称一般使用小写。C#和TS,在这块有几个差异,一是字符串,二是null、三是JS/TS独有的几个基本类型,如undefined、void、symbol。

2024-05-28 20:11:39 313

原创 第壹章第3节 C#和TS语言对比-类型概述

类型在编程开发语言中,占据核心位置,甚至可以简单的概况为:编程开发就是在定义和使用类型。C#和TS的数据类型,可以划分为值类型和引用类型,还有原始类型、基本类型等等这些称谓,个人建议按值类型和引用类型来划分,是比较准确的。

2024-05-25 20:16:23 874

原创 第壹章第2节 C#和TS语言对比-代码组织方式

C#和TS的基础语法热身后,在深入语言之前,有必要搞清楚C#和TS代码组织方式。C#和TS都是面向对象语言,但前者是类型语言,所有代码都必须包含在类中(此处类是一个广义概念,它还包括结构、枚举、接口等);后者是函数式语言,函数可以作为值传递和返回,有全局作用域,代码不需要包含在类中。这种差异,导致两者的代码组织方式,存在较大差异。

2024-05-24 20:43:24 2182

原创 第壹章第1节 C#和TS/UTS语言对比-基础语法

C#、JS/TS/UTS的最基础语法,包括了变量、常量、运算符、控制语句和作用域。我觉得大家应该可以在5分钟之内看完。。。what!开个玩笑!大家可以多看看作用域这节,还是费了点心思来缕清楚的。

2024-05-23 19:54:50 867

原创 第零章 前言

既然已经来到全栈,无论是从前端到后端,还是从后端到前端,咱们应该都是有一定编程基础的,所以这个系列的风格将是短平快,比较少解释性的阐述,大多数问题使用代码来说明,尽量少废话。但是,第一章关于C#和TS/UTS语言的学习,会细碎一些,首要目标是覆盖到绝大多数知识点,其次才是尽量简明扼要。

2024-05-22 20:52:37 478

空空如也

空空如也

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

TA关注的人

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