.Net思想篇:为何我们需要思想大洗礼?

前言

每当说一件事的时候,我喜欢回溯往事,这样思有所依,文有所凭,才能达到打字如尿崩,一发不可收拾的流畅度。让我们将时光回溯到08年,当时和同学们就有了学java和.net之争,当然不止这些,还有设计,测试,平面设计,网络设计之争,踏入互联网,路有千条随你选。我也不知为什么选了c#这条路,但我有些考试需要java,所以java还是有点小基础。

时光转移到18年,由于业务增长,公司需要重构系统,以支撑更强大流量,更强大稳定性。但据高层反应,.net相关架构师太少很难招,还有其他一些原因,高层决定转java体系。但想转也不是那么容易的。


思想

也许是习惯问题,有些.net人并不想转,所以学习java动力不够。从语言角度来讲,java并没有优势,但java的生态远远甩开了.net。说到大数据,我第一想起的是Hadoop,昨天又对Spark印象深刻。

生态吊打,难道我们就必须转行么?

Docker,Kubernetes基于go语言,我们就要转go么?

现在很多人工智能机器学习会为python提供原生支持,我们就要转python么?

Rabbitmq基于erlang开发,已经是队列的主要选型标准,我们就要转erlang么?

百花齐放,各有其型,才是最健康的互联网。

春秋战国,百家诸子争鸣,在史上流传了一段佳话。罢黜百家,独尊儒术之后,可还有看到类似的思想绽放么?

如果你听了博主这段话,就心安理得独守.net,那也是害了你。


从历史中寻找借鉴

历史是每一个时代发生的事,成功或失败,都有其巨大的价值。百年近代史告诉我们,落后就要挨打。当然我们平民就不吹这么大的牛逼,只从里面感悟一点一点能用的就行。历史上提出过“师夷之长技以制夷”,缩小到编程语言这个小层面来讲,就是学习其他语言生态思想的精华,来补足自身的思想不足。

王垠大神的博客具有无数不同性质的批判,嫌其他人太挫,这是他个人的思想境界。但我离他的距离有十万八千里,我就是从一个平凡人的角度来思考。

真正的跨平台

所有现成实用的中间件,并不是被语言独占的,基于AMQP协议,你可以用很多语言实现队列。我们最重要的也许不是了解erlang ,而是去了解rabbitmq的实现机制。

了解了redis的实现机制,和一些关键思想后,你也可以用很多语言实现一个类似的缓存。

我们考虑转型首先应该考虑转型的是思想,是实现的原理,其次才是语言。因为要研究思想,所以才会去了解新的语言,这是相辅相成的。

所以如果别人说转java,就不要和他们争论了,你要有自己的见解,你学java是可能为了解spring cloud的思想及应用,如何实现微服务的思想。

ES6支持了async await异步模型,是吸取了c#的思想。

.netcore的依赖注入的模式,采用当前最流行的思想,而spring框架天生就支持依赖注入和aop。

思想变的一样了,才有了赶超的机会。

譬如中国四十年经济改革开放,也是思想的巨变,虽然改革结果有人哭有人笑。

所以真正的跨平台是思想的跨平台。

社区领导者

如果.net强依赖windows平台,那无疑降低了竞争性,虽然以前的mono支持了linux,但从实际应用来看属于小众用户。"群龙无首"就描述了以前.Net社区现状,当时开源社区最大的腕算是mono团队了吧。

.NetCore开源后,迎来一个新时代,最大的好处就是支持跨平台,也支持和iis解藕了。这就有了继续强大的思想资本。

微软经过时代巨变,解放了自己的思想,社区工作者和普通个人开发者的思想受岁月流毒严重,还有很多,依旧沉浸的.net的思想体系内。


破心中神

这已经是我这三篇博文一直提的话题了,我一直在感悟思想解放。<牧神记>这本小说,也给我了很大的思想冲击。当然最大的还是现实冲击。年中,公司对善于分享的同事颁发了分享奖。这其中当然没有我。因为我之前分享的很少。此事之后,我就开始总结提炼我所学知识,在博客上分享。刚开始很差,现在渐渐写的能凑合了,不过还不够好。

破心中神第一步,选择一个方向去攻破。我为自己选了四个方向。爬虫,队列,支付中心,分布式链路追踪。现在尚不知哪个意向最终能以成品开源出来,但有方向总不至于茫然无措。

从去年开始,我陆续看了李艳鹏老师的<分布式服务原理,设计和实践>,单元测试的艺术,微服务设计。目前手里还有基本没看完。理论部分不再像之前那么茫然无措,至少不会再傻傻的被别人讲几下原理震撼住了。光看理论解决不了问题,还要结合实践求知,才能具有实用价值,目前我还在朝这个方向蹒跚起步。我已经开启了我的支付中心,队列,爬虫,分布式监控的思考时间路,从我的博文中可以反映出来。虽然都是原型,但至少已经起步了。从起步到完成,仍然是一个艰巨的任务。不要无视未知,参与进去解决它!


大牛之路

以小说届,久负盛名的三少举例,十年不断更,是一个十分困难的事情。能有此标签的,我只听过他一人。思想解放了,融合其他优质中间件思想,再配以持之以恒的实践,你就成了破了以前的心中神。善友大神的十三年mvp也是如此唯一。


思想解放,持之以恒的实践,乐于分享。这是我认为的大牛之路。

我虽然工作有年头了,但我对于这条路,才刚刚起步,路上有多少坑坑洼洼需要去填?

面向工资编程

经常看到有人说转java是面向工资编程,但很多公司高层工资更高啊,为什么不挑战自己进入更高职位?现在大前端,机器学习,算法也很吃香,为什么偏偏转了java?可见你并不是真正的面向工资编程。你只是面向.net和java两种工具编程,其实我也是。


最好的时机

.NetCore现在出来才两三年,这是出头的最好时机,太早不稳定,太晚又太成熟。这是补充.生态的最好时机。待你深挖了各大中间件核心思想后,在netcore实现你的开源,你会有很大收获。君不见开源项目有吸引力的很多人,都是微软mvp了么?

阿里以前有句话:if not me,who?if not now,when?

时光易逝,鸡血难续。如果这篇文章不能引发你的小宇宙,那算我失败。如果引发你的小宇宙,你没有实施,那就是你自己了。我同样也是这样提醒我自己的。

从此启程

2018.9.16凌晨

本篇到此结束,感谢观看。

 

原文地址:https://www.cnblogs.com/fancunwei/p/9655057.html


.NET社区新闻,深度好文,欢迎访问公众号文章汇总 http://www.csharpkit.com

640?wx_fmt=jpeg

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/319831.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

[AGC009B] Tournament(多叉树转二叉树后的最小可能深度)

传送门 把aia_iai​看成faifa_ifai​&#xff0c;建出一棵多叉树&#xff0c;再把多叉树转成二叉树&#xff0c;转出来的每棵二叉树对应着一种比赛方式。 以n8,a2,...,81,1,2,4,3,3,3n8,a_{2,...,8}1,1,2,4,3,3,3n8,a2,...,8​1,1,2,4,3,3,3为例&#xff0c; 多叉树转出的二…

C# 8中的Async Streams

关键要点异步编程技术提供了一种提高程序响应能力的方法。Async/Await模式在C# 5中首次亮相&#xff0c;但只能返回单个标量值。C# 8添加了异步流&#xff08;Async Streams&#xff09;&#xff0c;允许异步方法返回多个值&#xff0c;从而扩展了其可用性。异步流提供了一种用…

asp.net core webapi项目配置全局路由

一、前言在开发项目的过程中&#xff0c;我新创建了一个controller&#xff0c;发现vs会给我们直接在controller头添加前缀&#xff0c;比如[Route("api/[controller]")],即在访问接口的时候会变成http://localhost:8000/api/values&#xff0c;但是如果控制器有很多…

C Looooops POJ - 2115

C Looooops POJ - 2115 题目&#xff1a; A Compiler Mystery: We are given a C-language style for loop of type statement; I.e., a loop which starts by setting variable to value A and while variable is not equal to B, repeats statement followed by increasing …

IdentityServer4实战 - 谈谈 JWT Token 的安全策略

一.前言众所周知&#xff0c;IdentityServer4 默认支持两种类型的 Token&#xff0c;一种是 Reference Token&#xff0c;一种是 JWT Token 。前者的特点是 Token 的有效与否是由 Token 颁发服务集中化控制的&#xff0c;颁发的时候会持久化 Token&#xff0c;然后每次验证都需…

使用.Net Core实现FNV分布式hash一致性算法

说到FNV哈希算法不得不提Memcached&#xff0c;我们先简单介绍一下Memcached。MemcachedMemcached分为客户端与服务端&#xff0c;Memcached是服务端&#xff0c;服务端本身不提供分布式实现&#xff0c;只是一个单独的k-v缓存&#xff1b;Memcached的分布式是在客户端类库中实…

[XSY4197] Snow(树形DP)

我们在树上的每个点iii上放aia_iai​个小点&#xff0c;初始时先让每个点单独减&#xff0c;这样要花费aia_iai​之和的次数。 然后尝试把某些减合并。一个点上面的小点至多可以向两个相邻的小点连边&#xff08;这两个小点不能在同一个点上&#xff09;。每连一条边&#xff…

Followme Devops实践之路

引言天下武功,唯快不破想要提高开发团队效率&#xff0c;势必要有一套完整而成熟的开发流程方案&#xff0c;除了sprint迭代开发模式之外,还有近几年流行的devops流程,都是可以大幅度提高开发效率的工具. 我们团队也不断探索、实践&#xff0c;最终形成了现有的一套体系&#x…

基环树小记

概念 基环树就是有n个点n条边的图&#xff08;比树多出现一个环&#xff09;。 特殊形态的基环树 无向树(N点N边无向图) 外向树(每个点只有一条入边) 内向树(每个点只有一条出边) 以上三种树有十分优秀的性质&#xff0c;就是可以直接将环作为根。就可以对每个环的子树进行单…

利用BenchmarkDotNet 测试 .Net Core API 同步和异步方法性能

事由&#xff1a;这两天mentor给我布置了个任务让我用BenchmarkDotNet工具去测试一下同一个API 用同步和异步方法写性能上有什么差别。顺带提一下&#xff1a;啊啊啊啊 等我仔细看文档的时候文档 发现它让我用Release的模式去运行benchmark。 emmm...其实我之前一直在用Debug模…

MATLAB线性规划相关函数用法

一.线性规划的Matlab标准形式及软件求解 1. MATLAB中规定线性规划的标准形式为 其中c和 x为n 维列向量&#xff0c; A、 Aeq 为适当维数的矩阵&#xff0c;b 、beq为适当维数的列向量。 &#xff08;Aeq 对应约束条件中等式约束的系数矩阵&#xff0c;A为约不等式约束的系数矩…

.NET Core 出得云端入得本地,微软让跨平台应用勇敢表达

地铁公交的上班路上、咖啡馆里等人的时候&#xff0c;这些碎片化时间都是现代人学习和充电的机会&#xff0c;根据第42次CNNIC中国互联网发展状况统计报告&#xff0c;截至2018年6月&#xff0c;网络文学用户规模已达4.06亿&#xff0c;占网民总体50.6%&#xff1b;手机网络文学…

【每日一题】7月3日精讲—毒瘤xor

【每日一题】7月3日精讲—毒瘤xor 时间限制&#xff1a;C/C 1秒&#xff0c;其他语言2秒 空间限制&#xff1a;C/C 32768K&#xff0c;其他语言65536K Special Judge, 64bit IO Format: %lld文章目录题目描述题解&#xff1a;代码&#xff1a;题目描述 输入描述: 第一行一个整…

了解改良圈算法

一.相关知识——Hamilton圈 什么是Hamilton圈&#xff1f; 哈密顿图&#xff08;哈密尔顿图&#xff09;&#xff08;英语&#xff1a;Hamiltonian path&#xff0c;或Traceable path&#xff09;是一个无向图&#xff0c;由天文学家哈密顿提出&#xff0c;由指定的起点前往指…

ASP.NET Core Middleware

中间件(Middleware)是ASP.NET Core中的一个重要特性。所谓中间件就是嵌入到应用管道中用于处理请求和响应的一段代码。ASP.NET Core Middleware可以分为两种类型&#xff1a;Conventional MiddlewareIMiddlewareConventional Middleware这种中间件没有实现特定的接口或者继承特…

NOIP复健计划——动态规划

树形DP [POI2011] DYN-Dynamite 二分KKK check(mid)&#xff1a; 能否选出mmm个点&#xff0c;使得 ∀i为关键点&#xff0c;Minjisselected{dis(i,j)}≤mid\forall i为关键点&#xff0c;Min_{j\ is\ selected}\{dis(i,j)\}\leq mid∀i为关键点&#xff0c;Minj is selecte…

【每日一题】7月6日精讲—平衡二叉树

来源&#xff1a;牛客网&#xff1a; 文章目录题目描述题解&#xff1a;代码&#xff1a;时间限制&#xff1a;C/C 1秒&#xff0c;其他语言2秒 空间限制&#xff1a;C/C 1048576K&#xff0c;其他语言2097152K 64bit IO Format: %lld题目描述 平衡二叉树&#xff0c;顾名思义就…

MATLAB灰色预测

一.灰色预测 1.灰色系统下的灰色预测 <1>什么是灰色系统&#xff1f; 所谓的灰色系统其实就是夹杂在白色系统和黑色系统之中的一种系统&#xff0c;而白色系统就是全部信息已知的系统&#xff0c;黑色系统就是全部信息未知的系统。所以&#xff0c;夹在这两种系统中间…

ASP.NET Core 中的依赖注入

什么是依赖注入软件设计原则中有一个依赖倒置原则&#xff08;DIP&#xff09;&#xff0c;为了更好的解耦&#xff0c;讲究要依赖于抽象&#xff0c;不要依赖于具体。而控制反转(Ioc)就是这样的原则的其中一个实现思路, 这个思路的其中一种实现方式就是依赖注入(DI)。什么是依…

【每日一题】7月7日题目精讲—最短路

来源&#xff1a;牛客网&#xff1a; 文章目录题目描述题解&#xff1a;代码&#xff1a;时间限制&#xff1a;C/C 1秒&#xff0c;其他语言2秒 空间限制&#xff1a;C/C 1048576K&#xff0c;其他语言2097152K 64bit IO Format: %lld题目描述 给一个连通图&#xff0c;每次询问…