低代码,想说爱你不容易 本文探讨了“低代码”这一热门话题的发展现状、国内外趋势以及产品形态。指出“低代码”产品主要包括表单生成、工作流生成、协同工作和服务聚合等形态。在对低代码研发痛点的讨论中,强调了多人协作困难、表达能力不足、变量混乱和动态计算等问题,同时提及了黑盒子问题和事件顺序的不确定性。最后,强调了对技术人员学习通用知识和技能的重要性,警示不要盲目追求“低代码”而应注重个人技术积累。
记一次失败的 ThoughtWorks 面试经历 面试者分享了自己参加 ThoughtWorks 公司的面试经历,这家公司以高难度面试著称。面试流程包括家庭作业、结对编程和面对面面试三个部分。面试者选择了一个会议追踪管理的题目作为家庭作业,虽然通过了初筛,但后来意识到设计上存在问题。在结对编程环节,面试者面临了沟通和重构代码的挑战,这部分表现得不够好。面对面面试中,面试者遇到了开放型问题,需要系统性思考和清晰的表达。面试者提出了一些建议,包括关注编程风格、语言特性、设计模式、TDD、工程能力、沟通能力和学习能力等。最终,面试者没有通过面试,主要是由于在结对编程环节的重构做得不好和沟通不够大胆。面试者决定继续提升自己的技能,包括系统性思考、背单词和练习口语,以提高自己的技术水平和沟通能力。
从 C# 1.0 到 C# 9.0,历代 C# 语言特性一览 C# 版本历史记录涵盖了 C# 7.0、8.0 和 9.0 的语法特性。C# 7.0 引入了元组、更多的 expression-bodied 成员、out 变量、异步 Main 方法、模式匹配和引发表达式等特性。C# 8.0 带来了默认接口方法、异步流和索引和范围。而 C# 9.0 则包括了 Record、顶级语句和模式匹配增强等新特性,如`record`类型的引入、顶级语句简化和模式匹配语法的增强。
通过 Python 分析 2020 年全年微博热搜数据
通过 Python 分析 2020 年全年微博热搜数据
基于 Python 和 Selenium 实现 CSDN 一键三连自动化 博主感受到了面对年轻"后浪"压力的危机感,提及IT行业35岁门槛,称赞年轻技术大佬[Catcher Wong](https://www.cnblogs.com/catcher1994)的技术实力。讨论了"不正经"博主Kimol君通过标题党和评论互刷等手段获取流量的问题,提到评论风格和团队作弊行为。另外,探讨了年轻人不讲"武德"的现象,介绍了使用Selenium和Python刷CSDN点赞、收藏等操作的技术实现方法。最后,分享了Python数据挖掘专栏和技术驱动的浏览器操作配置方法。
使用多线程为你的 Python 爬虫提速的 N 种姿势,你会几种? 博主通过优化一个多年前编写的爬虫程序,深入探讨了 Python 中的多线程编程及其在爬虫领域的应用。文章首先介绍了线程和进程的基本概念,并通过代码示例展示了如何使用 `Thread`、`ThreadPool`、`ThreadPoolExecutor`、`Process`、`ProcessPool` 和 `ProcessPoolExecutor` 实现多线程和多进程下载。接着,文章讨论了由于 Python 的 GIL 特性,多线程在 Python 中主要适用于I/O密集型任务,而多进程则适用于CPU密集型任务。此外,博主还介绍了如何利用 `asyncio` 和 `requests` 实现异步I/O,以进一步提升爬虫程序的效率。文章最后通过对比不同方法的执行时间,展示了各自性能,并提供了一个福利,开源了示例爬虫程序给读者参考。
实现网页长截图的常见思路总结 作为一个经常在博客上分享内容的作者,对国内互联网丧失信仰感到担忧,指出厂商试图打造信息孤岛以增强用户黏度。分享了通过浏览器、Selenium、JavaScript和第三方工具实现网页长截图的方法,包括使用Chrome和Firefox的内置功能、Selenium库和html2canvas等工具。提到了几个在线服务如PickFrom和Tiomg,推荐使用Tiomg免费服务生成长截图。最后,提到了对技术含量较高的项目缺乏动力,分享了长截图实验经历。
温故而知新,由 ADO.NET 与 Dapper 所联想到的 这篇文章讨论了在维护一个"遗产项目"时遇到的困难,其中数据持久化层完全由 ADO.NET 手工构建,导致大量使用 DataTable 进行数据操作,与习惯使用 Entity Framework 的开发者产生不适。作者提到了 ADO.NET 的核心组件,介绍了 DbConnection、DbCommand、DbDataReader、DbDataAdapter、DataTable 和 DataSet 的作用。讨论了使用 ADO.NET 访问数据库的常用方法和设计理念。然后作者提到了希望改进这种情况,类似于 Dapper 的实现,引入了一个简化版的 DynamicRow 类来实现类似 DapperRow 的效果。最后,作者介绍了如何通过扩展方法实现类似 Dapper 的 Query 和 Execute 方法,以及简化版的参数化查询。整体文章展示了作者对 ADO.NET、Dapper 和 Dynamic 的思考,并提出了自己的改进方案。
视频是不能 P 的系列:OpenCV 人脸检测
视频是不能 P 的系列:OpenCV 人脸检测 在 2020 年的尾声,作者通过一个技术博客探讨了人工智能与视频、图像处理技术的发展,以及这些技术背后的隐私和伦理问题。文章以 OpenCV 库为例,详细介绍了如何利用其 CascadeClassifier 模块进行人脸检测,并通过编程示例展示了在图片和视频中实现人脸检测和“狗头”表情的叠加效果。作者强调了 OpenCV 在人脸识别和图像处理方面的强大功能,并指出这些技术可以应用于保护隐私等多种场景。最后,作者反思了技术发展对个人自我认知的影响,并鼓励读者在评论区交流想法。
作为技术宅的我,是这样追鬼滅の刃的
作为技术宅的我,是这样追鬼滅の刃的 这篇文章讨论了作者对动漫《鬼灭之刃》的热爱以及如何通过抓取漫画、制作电子书、制作表情包、生成视频和GIF等方式来追番和分享乐趣。作者表达了对热血少年漫的热爱和追求中二信仰的态度,以及对生活的乐观和勇敢面对困难的态度。文章展示了如何利用Python中的各种库和工具来实现这些创意。
使用 Python 抽取《半泽直树》原著小说人物关系
使用 Python 抽取《半泽直树》原著小说人物关系 2020 年的年度日剧《半泽直树》续集获得了极高的评价,本文通过 Python 编程,结合自然语言处理技术,提取了原著小说中的人物关系。在准备工作中,需要准备中文语料、安装必要的第三方库,并使用 Gephi 软件进行人物关系的可视化展示。文章介绍了共现网络的基本原理,并通过 RelationExtractor 类来抽取人物关系,最终使用 Gephi 和 PyECharts 对结果进行可视化。结果显示,大多数人物关系是正确的,但不可避免地存在一定局限性,如无法解决在A和B交谈中提到C的问题,以及女性角色的缺失等。为了改进这些不足,可以尝试使用文本分类模型和依存句法来识别实体间的关系,哈工大的语言技术平台(LTP)在这方面可以提供帮助。
厉害了!打工人用 Python 分析西安市职位信息 本文主要通过抓取Boss直聘、智联招聘、前程无忧三个招聘网站的信息,分析了西安市的求职招聘情况。重点讨论了行业结构、学历结构、薪资待遇、学历与薪资关系、经验与薪资关系、招聘热词等方面。结论包括西安市主要行业、学历与薪资正相关、经验与薪资正相关、热门标签如五险一金、年终奖金等。整体显示西安市求职招聘情况,以及人们关注的重点。
一个西漂打工人的求职心路 这段文字描述了作者在工作和求职中的经历和思考。作者离职后面临选择两个Offer,但最终放弃,接连经历了多家公司的面试和工作,遇到了种种困境和挑战。作者对于西安IT行业的内卷现象和未来发展感到担忧,反思个人职业规划和生活状态。最后,提到对未来的思考和学习计划,表达了对自我提升的期许和对未来的迷茫。整体展现了对职业发展、生活状态和未来的思考和探索。
使用 dotTrace 对 .NET 应用进行性能分析与优化 本文介绍了如何使用JetBrains的性能分析工具dotTrace和内存分析工具dotMemory来排查程序性能问题。通过示例程序演示了如何使用这两款工具进行性能分析和内存分析,并介绍了如何通过Dump文件对生产环境中的内存进行诊断。文章还提到了.NET Core的命令行工具dotnet-dump和dotnet-gcdump,用于内存分析。最后,作者分享了个人经历中对性能优化工具的体验,并提到了MiniProfiler用于代码层面的性能分析。文章强调了程序性能优化的重要性和细节调优的必要性。
一道 HashSet 面试题引发的蝴蝶效应 在这篇文章中,作者通过解读 HashSet 的源代码,介绍了 HashSet 去重的原理以及与 IEqualityComparer<T> 接口的关系。进一步讨论了在排序和去重操作中的接口应用,包括 IEquatable<T>、IComparable/IComparable<T> 和 IComparer<T> 接口的作用。通过对 HashSet、Dictionary 和去重操作的探讨,展示了这些数据结构和接口之间的联系,强调了在处理排序和去重时的重要性。整体上,文章通过解答一个关于 HashSet 的面试问题,深入探讨了涉及数据结构和接口的相关知识点,展示了技术知识体系中的连锁效应。