低代码,想说爱你不容易 本文探讨了“低代码”这一热门话题的发展现状、国内外趋势以及产品形态。指出“低代码”产品主要包括表单生成、工作流生成、协同工作和服务聚合等形态。在对低代码研发痛点的讨论中,强调了多人协作困难、表达能力不足、变量混乱和动态计算等问题,同时提及了黑盒子问题和事件顺序的不确定性。最后,强调了对技术人员学习通用知识和技能的重要性,警示不要盲目追求“低代码”而应注重个人技术积累。
一道 HashSet 面试题引发的蝴蝶效应 在这篇文章中,作者通过解读 HashSet 的源代码,介绍了 HashSet 去重的原理以及与 IEqualityComparer<T> 接口的关系。进一步讨论了在排序和去重操作中的接口应用,包括 IEquatable<T>、IComparable/IComparable<T> 和 IComparer<T> 接口的作用。通过对 HashSet、Dictionary 和去重操作的探讨,展示了这些数据结构和接口之间的联系,强调了在处理排序和去重时的重要性。整体上,文章通过解答一个关于 HashSet 的面试问题,深入探讨了涉及数据结构和接口的相关知识点,展示了技术知识体系中的连锁效应。
《C#多线程编程实战》读书笔记 本文是根据《C#多线程编程实战》整理的读书笔记,详细介绍了在.NET中多线程编程相关的知识,包括线程基础、线程同步、使用线程池、任务并行库、并行集合、PLINQ以及异步I/O等内容。涵盖了线程的基本操作、线程同步的方法、使用线程池、任务并行库的使用、并行集合的应用以及异步I/O的实现。文章总结了55条关键的技巧和注意事项,对于想深入学习多线程编程的人来说是一份很好的参考资料。
异步 Lambda 表达式问题的探索 Payne在博客中讨论了.NET中异步Lambda表达式的问题,强调架构设计应由一线开发人员提炼和抽象,指出异步方法在ICommand接口中的历史遗留问题。他还探讨了异步编程中的异常处理机制,指出使用async void容易导致未处理异常终止程序。最后总结指出异步委托在IL层面无差别,建议使用Func而非Action来生成异步方法,对待async void应注意异常处理,强调处理各种异常的必要性。
函数式编程常用术语 函数式编程作为一种编程范式在近年来逐渐流行,通过将计算机运算视为数学函数来避免状态和变量的概念。Lambda演算是函数式编程中的基础,函数式程序以表达式为主体,强调无状态和不可变性。常见术语包括高阶函数、柯里化、惰性求值等,这些术语在C#中得到了解释和应用。函数式编程的优点在于改善程序模块化程度,但缺点在于无法处理现实世界中的状态变化等问题。函数式编程应当视为一种编程思想的选择,而不是取代面向对象编程。函数式编程可能会作为面向对象编程的延伸和补充存在。
C# 中 Socket 通信编程的异步实现 本文探讨了在 C# 中基于 Socket 的异步通信编程实现方法,通过异步过程来提高效率。介绍了服务端和客户端的基本流程,包括创建套接字、连接、收发消息等操作。通过回调函数实现异步通信,展示了异步编程的逻辑性和效果。作者提到了异步编程相对于同步编程的优势,但也面临多客户端异步编程实现的挑战。最后讨论了异步方法调用的两种写法,建议使用更简洁、优雅的第二种写法。