一个在 .NET 一线战斗了十年的 C# 程序员的内心独白
这是我的一个内心独白,内容有点长,希望你能耐心地看完。估计看到标题,大部分人都会说:哇!大牛!膜拜……之类的。至于是不是大牛,那我不知道,毕竟我依然有很多地方不懂,特别是现在已经流行的Redis,集群,那些所谓搭建高性能架构的技术,我一个都没用过,毕竟我不在互联网公司,做的基本上都是全栈相关的工作,从前端到后端再到数据库,除了设计不搞,其他都磨练出来了。写这篇文章其实主要是心寒和有点失落吧,首先,在各大招聘网站上.NET的需求越来越少,即使有,要求的技术还是十年前那一堆,什么aspxmvcwcf这些;其次,在知乎、头条、CSDN这种大家常去的站点,时不时都有JAVAC++或者现在的新气之秀Python以及最近很火的各种AI技术,而我看见最多的就是在说以阿里巴巴为最终目标的JAVA各种分布式技术,然后回复里各种热闹,回头一看曾经的JAVA对手的.NET在哪呢?几乎没有任何文章出现,要么你就得自己搜关键字才能找到几篇。第三,就是各大论坛、公开课、分享会等大佬云集的
《RabbitMQ Tutorial》译文 第 3 章 发布和订阅
原文来自RabbitMQ英文官网的教程(3.PublishandSubscribe),其示例代码采用了.NETC#语言。Intheprevioustutorialwecreatedaworkqueue.Theassumptionbehindaworkqueueisthateachtaskisdeliveredtoexactlyoneworker.Inthispartwe'lldosomethingcompletelydifferent--we'lldeliveramessagetomultipleconsumers.Thispatternisknownas"publish/subscribe".在之前的教程中我们创建了一个工作队列,其背后的设想便是每一个任务恰好地递送给一个工作单元。在本教程中,我们的做法将完全不同--即递送消息给多个消费者,这个模式被称作“发布/订阅”。Toillustratethepattern,
分享10个优美的程序员把玩儿的实用科技设计酷站(9)
今天为优美的程序员们带来了科技设计酷站第9期!哈哈哈~~~绝对实用!快来看看吧~~~O(∩_∩)O~KapKap是一款设计精巧的macOS屏幕录像软件,它是基于Web技术来搭建的开源APP。这款应用中最令人着迷的是它的即时转码输出功能。Kap是帮你记录APP的绝佳工具。SizzySizzy是一款用来测试响应式网站的开发工具,它可以帮你在一块屏幕上测试多个屏幕尺寸下的显示效果。比起Chrome内容之的移动端模拟器,Sizzy要方便太多。值得一提的是,它也是Chrome浏览器插件。MuseUIMuseUI是一款基于Vue.js2.0采用MaterialDesign风格的UI库,其中包含了诸如Appbar、Card和Dialog这样典型的Materialdesign风的控件。在它的基础上快速构建UI是个不错的选择。AdvancedWP-CLIWP-CLI还能让你在创建主题的时候,作为PHPUnitTest的脚手架而存在!下面是WP-CLI的开发者DanielBa
程序员脱单教程(记得转给你有好感的女生~)
大家都知道,在所有的上班族当中,程序员是一群最有特点,智商最高,最自命不凡的人。有些姑娘非常相信这一点,就都喊着要嫁给程序员。但是,为了让这群自命不凡的人能拜倒在姑娘们的石榴裙下,你不必把一生的幸福搭进去。这里分享11个非常巧妙的技巧,运用这些技巧,你可从这些程序员口中赚取到“你好厉害呀”这样的话。一、写纯文本格式的邮件程序员通常不喜欢你那些花里胡哨的邮件——比如粉红的标题、粗体的HTML格式的邮件内容、并且还内嵌图片。他们喜欢的是简洁命令的纯文字表述。如果你想强调某句话,在那句话两头加上*两个星号*。如果你想再强调一下,加上_两个下划线_。永远永远不要在信的末尾加上“祝好运”三个字。二、会议中说“这跟我们目前讨论的话题相关吗?”每当有一个论点某人引入时,你要记得说类似这样的话,“你说的这个事跟我们目前讨论的问题相关吗?”即使你你判断错误,你也会因为这句话而加分。三、提到HackerNews的头条内容浏览一下HackerNews的首页,记住它的头条都有那些内容。当你遇到一个程序员,跟他聊天时,提到这些内
2018 GitHub最火技术趋势
GitHub的高级技术副总裁JasonWarner在2018的技术趋势中挑出了数据、工作流集成(workflowintegration)以及开源工具,他认为这些是一个公司在2018年能够取得成功的关键。Warner写道,数据将成为2018年全球增长的最重要因素:现如今,所有的公司都是数据公司,不论他们是否意识到这个情况。在2018年,只要团队知道如何使用数据,数据就会成为他们最大的资产。数据的重要性日益增长,也标志着云服务平台从分布式云计算平台转型成为数据处理的云平台,其中还包括数据分析和机器学习。这将重点反映到三个关键领域:Warner说,许多重要的系统目前都很脆弱,尽管它们的规模越来越大。为了应对在2018年变得更加频繁的攻击,将会有更多的财力和开发资源分配到改进安全性上。Warner强调说,安全性必须是代码不可分割的一部分,不能简单地在生产过程中才添加至系统。Warner看到了由于对机器学习的关注,对目前的安全领域产生了巨大影响,这种趋势最终会导致构建的系统会受一个自动的保护机制所保护。云服务基础设施方面
简书大V评程序员是出轨率最高的群体引起公愤,简书官方已发公告
11月6日,一位名叫饱醉豚的简书签约作家发表了《为什么程序员是出轨率最高的群体(支持双十一程序员脱单专场)》的文章。这篇文章迅速在网络上走红,引起了热议,文中的多处不实报道和恶意曲解更是引起了很多人的愤怒。小编作为一名在互联网公司从事软件开发工作的程序员,在看了这篇文章后对此事也一直特别关注。文中,作者不止一次的强调程序员是故意把自己的职业塑造成一个老实、内向,工作忙碌、经常加班的很努力的形象,实际上却是上班时间大多是悠闲的。作者在文章中写道,程序员上班时间经常干私活、打游戏、闲聊,一天真正认真写代码的时间不过两三个小时。作者在文中所谓的程序员过度包装自己的形象,其实是对程序员这个职业的一种恶意曲解,文中很多观点、说法都不符合实际。上班时间打游戏、闲聊、干私活,这些说法根本上都不成立,在一个互联网公司,每天都会有不同的任务、需求需要程序员去完成,还要解决随时可能出现的bug,有时候工作任务重时间紧,加班是必须的。小编作为一名程序员,加班就像家常便饭,每天都有很多工作去做,怎么可能会有大把的时间去打游戏、闲聊呢。何况,有哪个公司的老板允许自
极客想让你的生活更爽:如何用技术改造成人玩具
(原标题:Betterlovingthroughtechnology:adayatthesex-toyhackathon)(开发者在伦敦大学金史密斯学院进行研发。图:SonjaHorsmanfortheObserver)网易科技讯12月14日消息,在伦敦的一座教堂里,50位年轻极客正聚一起大搞性爱机器人研发。他们在彼此的鼻子上测试振动器效果,将对方绑在充气娃娃怀中感受拥抱,并在教堂的巨大玻璃窗下将各种性爱玩偶拆开仔细研究内部结构。这群人正在做的事和彩色玻璃窗上虔诚的字形成巨大的反差:“基督啊,你是光荣的君王”。这里是伦敦大学金史密斯学院。这栋建筑曾经是圣詹姆斯·哈彻姆教堂,后来被改造成学院的“艺术中心”。大学里一个叫“黑客斯密斯”的社团选择在这里进行“黑客松”的主题聚会。“黑客松”(hackathons)又称编程马拉松,是一种流行于黑客群体中的新型活动,程序员与其他专业的人聚集在一起,开展头脑风暴交流想法,并通过紧密合作开发一些新项目。本次黑客松的主题是令人血脉偾张的“性爱科技”。照自己的意愿打造一
智能派单软件降低同城配送成本策略简介
不知道大家还记得那句耳熟能详的广告语:“挖掘技术哪家强,中国山东找蓝翔”吗?这不双十一临近了,各大电商平台也是纷纷拿出看家本领,卯足了劲儿的宣传“强制预热”商品,这更是可以媲美蓝翔技校的广告了。同城配送已然成为最后一公里的终结者和颠覆者,神助攻般的智能派单软件闪亮出击,那么是否也该像电商那样强制预热一番呢?说起智能派单软件,不知道是否该来聊一聊一些做同城配送跑腿团队头疼的问题呢?面包是支持梦想走的更远的物质基础,许多的人选择走上创业创业这条路最简单的想法就是:通过创业挣钱,改善家人生活,然后实现自己的梦想。但是许多选择做同城跑腿创业的人最头疼的问题还是如何降低成本(人力成本、管理成本、机会成本等)。同城配送最后一公里的配送痛点,不光是配送团队在努力的做着变革,商家和开发人员也在为降低成本做着自己最大的努力。尤其是开发快跑者的开发人员更是一直走在创新的道路,将智能派单作为开发的方向。快跑者的开发人员在收集成千上万的需求过后,通过产品的规划,智能派单的第一阶段和第二阶段已完结,走向了关键的第三阶段以及以后的开发。虽然没有正式上线快跑者智能派
视频演讲: 人工智能在 Web 安全中的实践
32:08概要传统的基于攻击特征的安全防护,存在着特征库难于管理、较高的误报率和漏报率等诸多问题,安全防护效果难以进一步提高,而近年来出现的基于语法规则的检测虽然在一定程度上弥补了特征的不足,但是因为不理解业务,对于有着更高智能的攻击也显得捉襟见肘。我将从百度在安全领域的实践出发,与大家一起探讨通过人工智能、机器学习领域的经典方法形成的分析系统效果,和他们如何与传统防护系统相互补充的经验。个人简介冯景辉,百度安全事业部技术总监,商业安全产品研发总负责人。进入百度之前,是国内第一家完全基于SaaS的云安全服务厂商安全宝的联合创始人兼研发副总裁,安全宝系统架构总设计师。创立安全宝之前,曾在当时中国最大的反病毒企业瑞星公司担任高级软件工程师、研发经理等职务,带领团队在企业级安全产品线上先后开发了9200、9300等多款安全防护系统。冯景辉是资深开发专家,自幼酷爱电脑,16岁即在中国知名技术社区网易任CGI版主。17岁辍学,成立自己的网络工作室“星晖”。18岁加入当年红极一时的健康类门户健康久行网并任技术总监。此
Spring Security(一)--Architecture Overview
公众账号原文https://mp.weixin.qq.com/s?__biz=MzUzMTA2NTU2Ng==&mid=2247483860&idx=1&sn=a0d4de91cd9e97b6a0a752f75c172434&chksm=fa497e65cd3ef773b729f36a9adab379d492ae859e34a48ba86be687e487762d346ecce5f129#rd
Spring Cloud构建微服务架构:Hystrix监控数据聚合【Dalston版】
上一篇我们介绍了使用HystrixDashboard来展示Hystrix用于熔断的各项度量指标。通过HystrixDashboard,我们可以方便的查看服务实例的综合情况,比如:服务调用次数、服务调用延迟等。但是仅通过HystrixDashboard我们只能实现对服务当个实例的数据展现,在生产环境我们的服务是肯定需要做高可用的,那么对于多实例的情况,我们就需要将这些度量指标数据进行聚合。下面,在本篇中,我们就来介绍一下另外一个工具:Turbine。准备工作在开始使用Turbine之前,我们先回顾一下上一篇中实现的架构,如下图所示:其中,我们构建的内容包括:eureka-server:服务注册中心eureka-client:服务提供者eureka-consumer-ribbon-hystrix:使用ribbon和hystrix实现的服务消费者hystrix-dashboard:用于展示eureka-consumer-ribbon-hystrix服务的Hystrix数据动手试一试下面,我们将在上述架构基础上,引入Turbin
性能优化--找到SQL SERVER中的书签查找
前言我们在建立索引的时候,对于调节筛选列是大家都能够注意到的。但是对于包含列检查会被忽略。从而导致大量的LOOKUP,也就是书签查找。那么我如何才能找出某个表是不是执行了书签查找,执行了多少次书签查找呢?正文好消息是,SQLServer有各种各样的动态管理视图,其中sys.dm_db_index_operational_stats视图就能查询到我们需要的信息。这个视图的singleton_lookup_count列就会返回执行了多少个查找操作。让我们来看一个例子先创建一个新表,并在单个列上创建非聚集索引。CREATETABLECustomers(CustomerIDINTNOTNULLPRIMARYKEYCLUSTERED,CustomerNameCHAR(100)NOTNULL,CustomerAddressCHAR(100)NOTNULL,CommentsCHAR(185)NOTNULL,ValueINTNOTNULL)GOCREATENONCLUSTEREDIND
深入研究 Angular 框架中的装饰
使用Angular(Angular2及以上版本)开发程序时,装饰是一个核心概念。还有一个正式的TC39提案,目前处于阶段2中,该提案期望装饰器能够很快成为JavaScript的核心语言功能。回到Angular,Angular的内部代码广泛使用了装饰器,本篇文章中我们将学习不同类型的装饰器和它们的源码并且了解它们是如何工作的。我第一次接触到TypeScript和装饰器的时候,我不知道我为什么需要它们,但是当你稍微往深处发掘的时候你才能了解到了创建装饰器的好处(不仅是在Angular中)。在AngularJS中没有使用装饰器,而是使用了不同的注册方法——例如用.component()方法定义一个组件。那为什么Angular选择使用装饰器呢?让我们开始探索吧!
Generator函数的理解和使用
Generator函数是ES6提供的一种异步编程解决方案。异步编程1、所谓“异步”,简单说就是一个任务分成两段,先执行第一段,然后转而执行其他任务,等做好了准备,再回过头执行第二段。2、异步编程方式:(1)回调函数(2)事件监听(3)发布/订阅者(4)Promise对象3、所谓回调函数,就是把第二段单独写在一个函数里面,等到重新执行这个任务的时候,就直接调用这个函数。回调函数的异步方式容易形成多重嵌套,多个异步操作形成了强耦合,只要有一个操作需要修改,它的上层回调函数和下层回调函数,可能都要跟着修改。这种情况就称为”回调函数地狱”(callbackhell)。Promise可以解决callbackhell问题,Promise对象允许回调函数的嵌套,改成链式调用。什么是Generator?语法上,可以把理解成,Generator函数是一个状态机,封装了多个内部状态。形式上,Generator函数是一个普通函数。整个Generator函数就是一个封装的异步任务,或者说是异步任务的容器,异步操作需要暂停的地
Vue 子组件的异步加载及其生命周期控制
前端开发社区的繁荣,造就了很多优秀的基于MVVM设计模式的框架,而组件化开发思想也越来越深入人心。这其中不得不提到Vue.js这个专注于VM层的框架。本文主要对Vue组件化开发中子组件的异步加载和其生命周期进行一些探讨。阅读本文需要对Vue有一定的了解。注意:本文中的例子代码,都是以vue-cli采用webpack模板初始化的项目为基础。异步组件讨论异步加载,需要先了解下异步组件。Vue的异步组件是把组件定义为一个工厂函数,在组件需要渲染时触发工厂函数,并且把结果缓存起来,用于后面的再次渲染。例如注册一个全局异步组件:异步子组件和全局注册很类似:工厂函数的第一个参数resolve为成功后的回调,第二个参数reject为失败后的回调,可以在这里提示用户加载失败等。这里使用setTimeout只是为了模拟异步,在实际项目中,应该配合webpack的代码分离功能来实现异步加载。异步加载在实际的项目中,如果不使用异步加载,则Vue组件的JS
原生js实现下拉菜单效果
最近接触Magento后台管理系统,需要是实现一个下拉菜单的功能,之前的项目都是js和jquery混和在一起使用,从未用纯js实现功能,不写不知道,写了才发现自己的不足,失去jquery,就等于没了左膀右臂,看来还是基础不牢,地动山摇。由此想到最近浏览关于IT行业的网站,出现最多的关键词就是C++、Java、Python、php...,javascript这个关键词的出现概率为0.0000001%,身为大前端的我岂能容忍,为了振兴Javascript,我要头悬梁,刺锥股好好学习js。咳咳咳,在吹牛皮就该被打死了,进入正题。。。首先拿到一个功能,先进行需求分析,里面有什么逻辑
利用纯CSS美化checkbox和radio和滑动按钮的实现
W3C提供的CheckBox和radio的原始样式非常的丑,而且在不同的额浏览器表现还不一样,使用常规的方法添加样式没法进行修改样式一,单选按钮
我脑中飘来飘去的css魔幻属性
最近看到一篇20个CSS高级技巧汇总的汇总,感触很深,不过我想,与技巧相比,有些常见css布局难题,有时候更加让我们的日常开发变得踌躇沮丧吧。在写这一篇文章之前,自己还写过一篇:我所不注意的那些CSS冷知识,但却阻止了我做项目的速度,如果你看了,我相信你也会受益的。为什么此处li标签内的p元素看起来独自撑开了一行这是我在segmentfault上看到的一个问题,以前自己遇到过,所以就很热情洋溢的去回答了一下,难道遇到个自己会的,示例代码是这样的:CSS:li{display:inline-block;text-align:center;}.left,.center,.right{width:300px;height:300px;}.left{background-color:#999;}.center{background-color:#ccc;}.right{background-color:#eee;}HTML:
码云推荐 | 配合 TailLog 使用的代理服务 TailLog-Agent
通过ssh协议访问日志服务器并读取日志提供WebSocket服务,输出日志信息2.其基本结构如下:PC<---->代理服务器<---->日志服务器TailLog<---->Agent<---->日志文件3.主要技术栈SpringBootWebSocketJSch二.部署Step-1:下载最新发布jar包taillog-agent-1.0.0.jarStep-2:在运行目录下,添加配置文件config.properties##服务端口server.port=10091##被代理服务器的ssh配置(日志文件服务器)ssh.server.log.ip=192.168.1.5ssh.server.log.port=22ssh.server.log.username=rootssh.server.log.password=123456Step-3:运行java-jartaillog-agent-1.0.0.jar--spring.config.location=file:./conf
canvas入门实战--邀请卡生成与下载
1.前言写了很多的javascript和css3的文章,是时候写一篇canvas的了。canvas是html5提供的一个新的功能!至于作用,就是一个画布。然后画笔就是javascript。canvas的用途非常的广,特别是html5游戏以及数据可视化这两个方面。现在canvas给我的感觉就和css3一样,可以不用太厉害,但是必须要会基础的用法。但是以后对canvas的需求,肯定会越来越大。所以canvas很值得学习,而且学好canvas,就是很好的一个加分项。对于这篇文章,我也是以canvas初学者的角度写的,会有很多改善的地方。如果大家觉得我有什么可以改善的,或者建议,欢迎指点迷津!代码已上传github,需要的欢迎star(downloadImg)。大家看这篇文章之前,要了解javascript的一些基础,也要看着了解一些canvas的api(canvas-MSN教程,canvas菜鸟教程)2.邀请卡实例邀请卡自动生成这个会有的,毕竟有时候,很多邀请卡都是一样的,就是被邀请的人不一样而已,也就是说,整个邀请卡,就是一个名字不