关于程序员:高级Excel图表教程编程入门自学教程菜鸟教程免费教程分享

教程简介高级Excel图表初学者教程 - 从根本到高级概念的简略简略步骤学习高级Excel图表,包含简介,瀑布,乐队,甘特,温度计,仪表,子弹,漏斗,华夫饼干,踏板,盒子和晶须,帕累托,组织结构图,热图,直方图。 教程目录高级Excel图表教程高级Excel图表 - 简介高级Excel - 瀑布图高级Excel - 带状图高级Excel - 甘特图高级Excel - 温度计图表高级Excel - 仪表图表高级Excel - 子弹图高级Excel - 漏斗图高级Excel - 华夫饼图高级Excel图表 - 热图高级Excel - 步骤图表高级Excel - 盒子和晶须图表高级Excel图表 - 直方图高级Excel - 帕累托图高级Excel - 组织结构图高级Excel图表 - 有用的资源→教程入口←菜鸟自学教程起源(IT宝库:https://www.itbaoku.cn)

February 7, 2023 · 1 min · jiezi

关于程序员:Amazon-RDS-教程编程入门自学教程菜鸟教程免费教程分享

教程简介Amazon RDS初学者教程 - 从根本到高级概念的简略简略步骤学习Amazon RDS,其中包含概述,环境,接口,数据库实例,数据库存储,MS SQL性能,MS SQL创立数据库,MS SQL连贯到数据库, MS SQL DB导出导入,带有SSL的MS SQL DB,MS SQL DBA工作,Oracle性能,Oracle创立数据库,Oracle连贯到数据库,Oracle DB数据导入,Oracle DBA工作,MariaDB性能,MariaDB连贯到数据库,MariaDB数据导入, PostgresSQL性能,PostgresSQL创立数据库,PostgresSQL连贯数据库,PostgresSQL数据导入,MySQL性能,MySQL创立数据库,MySQL连贯数据库,MySQL数据库导出导入,MySQL DBA工作,多可用区部署,数据库快照,数据库监控,事件告诉,DB访问控制。 教程目录亚马逊 - RDS亚马逊RDS - 概述亚马逊RDS - 环境亚马逊RDS - 接口Amazon RDS - 数据库实例Amazon RDS - 数据库存储Amazon RDS - MS SQL性能Amazon RDS - MS SQL创立数据库Amazon RDS - MS SQL连贯到数据库Amazon RDS - MS SQL DB导出导入Amazon RDS - 应用SSL的MS SQL DBAmazon RDS - MS SQL DBA工作Amazon RDS - Oracle性能Amazon RDS - Oracle创立数据库Amazon RDS - Oracle连贯到数据库Amazon RDS - Oracle DB数据导入Amazon RDS - Oracle DBA工作Amazon RDS - MariaDB性能Amazon RDS - MariaDB创立数据库Amazon RDS - MariaDB连贯到数据库Amazon RDS - MariaDB数据导入Amazon RDS - PostgreSQL性能Amazon RDS - PostgresSQL创立数据库Amazon RDS - PostgreSQL连贯到DBAmazon RDS - PostgreSQL数据导入Amazon RDS - MySQL性能Amazon RDS - MySQL创立数据库Amazon RDS - MySQL连贯到数据库Amazon RDS - MySQL数据库导出导入Amazon RDS - MySQL DBA工作Amazon RDS - 多可用区部署Amazon RDS - 数据库快照Amazon RDS - 数据库监控Amazon RDS - 事件告诉Amazon RDS - 数据库访问控制→教程入口←菜鸟自学教程起源(IT宝库:https://www.itbaoku.cn) ...

February 7, 2023 · 1 min · jiezi

关于程序员:新年新气象老兵开新坑

正月十六元宵曾经过完了,传统意义上年也过完了,这个时候再说新年新气象如同有点晚了。但就像捷足先登的OKR一样,虽迟但到。于是鼓起勇气,坚定信心,开启技术文之路的新征程。 1.为啥写技术文过年期间一个偶尔的机会来到了技术论坛,登录了本人的旧账号,看到当年的头像,作为一个互联网的老兵,突然有些念旧。 开始学习技术是十五年前,过后还在大学里,据说学技术的大学生比拟好找工作。作为一个渴望用常识改变命运的大学生,毫不犹豫的开启了本人的技术之路。 那时的信息还不像当初这么丰盛,没有那么多总结文,也没有八股,没有路线图也没有方法论。理解技术次要靠本人啃书,印象最深的就是号称Java圣书的《Thinking in Java》:一部比砖头厚,还比砖头大的书。 上手实操的过程会遇到各种各样的问题,解决问题全靠谷歌(没错,以前谷歌是不须要翻墙的),起初发现一个叫做javaeye的论坛和csdn的bbs上有各种家养大神出没,能解答各种疑难杂症。就此,我也开始混迹技术论坛。每天都要去csdn的bbs java版看看有没有本人能解答的问题,也会去灌水区看看大家的学习心得和跳槽攻略。三年论坛生涯,留下了几十篇正经技术文和300粉丝,当初回过头看看,感觉还是挺不错的问题。 惋惜的是起初因为工作变动,也没有保持持续写作。最近在论坛上看到不少举荐工程师要放弃写作习惯的文章,感觉深感同意。其实记录下来的并不仅仅只是一些简略的文字,写作对于工程师来说也能够算是一种学习的习惯和方法论。每学一点新的货色,都要通过演绎和整顿;每踩过的一点坑,都要积攒和总结。这样不仅技术体系的脉络会更加分明,也能成为随时检索的起源。 尽管感觉错过了一些工夫,But it's never too late to start。 于是决定从新捡起写作的习惯,记录工作中的钻研和感悟,以此作为技术积攒,也想借助平台与同行做个交换。 2. 写点啥作为一个一线的技术管理者,技术治理的实际是日常最重要的工作。很多一线的同学会对技术治理十分的不以为然,会感觉管理工作很虚,日常就是吹牛逼没啥用。必定还会有很多同学感觉本人的领导每天看起来鸿鹄之志,技术甚至也不如本人(已经我也是这样的一员),更加会鄙视所谓的技术治理。 其实对于一个开发,一线的工作真的很纯正,能够把绝大部分的精力投入到技术实现和摸索里,日常的工作能够十分的单纯而专一,这是一种很幸福的状态。但技术的角色究竟是整个组织的组成部分,要为组织的指标奉献价值。单纯而专一的工作对于一个人是一种很棒的状态,但很多个单纯而专一的工作拼接起来不肯定就能达成组织对于团队的预期。很多事件只有换一换视角,站在业务和组织的角度上看,就会有很多不一样的,有意思的论断。在技术治理的实际上,也常常会遇到这样的场景,我感觉是一类十分有分享价值的内容。所以我打算把日常遇到的这些故事记录下来,变成技术治理实际的一些积攒。 技术类的内容对于一个技术博而言必定是不能少的,有一些有意思的场景类的解决方案、疑难杂症问题的解决过程以及专题技术的钻研也可能成为内容的组成部分。心愿通过这样的形式可能记录对于技术自身的思考。 开博宣言就到这里吧,新年新气象,新的一年给本人定个OKR,每周至多更一篇文章。 我是致知Fighting,一个互联网老兵,欢送大家与我交换。

February 7, 2023 · 1 min · jiezi

关于程序员:CICS教程编程入门自学教程菜鸟教程免费教程分享

教程简介CICS疾速指南 - 从CICS概述,环境,根本术语,Nucleus,事务,COBOL基础知识,BMS,MAP,接口块,伪编程,辅助密钥,文件解决,错误处理,管制操作,简略而简略的步骤学习CICS长期存储,互通,状态代码。 教程目录CICS - 疾速指南CICS教程CICS - 概述CICS - 环境CICS - 根本术语CICS - NucleusCICS - 交易CICS - COBOL基础知识CICS - BMSCICS - MAPCICS - 接口块CICS - 伪编程CICS - 支援键CICS - 文件解决CICS - 错误处理CICS - 管制操作CICS - 长期存储CICS - 互通CICS - 状态代码CICS - 面试问题CICS - 有用的资源探讨CICS→教程入口←菜鸟自学教程起源(IT宝库:https://www.itbaoku.cn)

February 7, 2023 · 1 min · jiezi

关于程序员:程序员必备的数据库知识数据存储结构

一、前言数据在数据库中的存储形式就是数据存储构造。传统数据库由上到下,能够分为网络接入层、计算引擎层、存储引擎层、系统文件层,数据存储构造就是在存储引擎层,数据库通过存储引擎实现CRUD操作。不同的存储引擎决定了数据库的性能和性能,所以存储引擎层是数据库的外围。另外,在数据库中数据是以表的模式存储,所以存储引擎也能够称为表类型。 本文将介绍,HEAP、B+TREE、COLUMN-STORE、 LSM-TREE、HASH等存储构造,这些不同的数据存储构造,导致不同数据库的索引、锁、事务等性能个性不同。下图是MySQL架构图,其中存储引擎有InnoDB、MyISAM、NDB Cluster、Memory等。 二、逻辑构造在介绍数据存储构造前,须要先理解数据库逻辑存储架构,常见关系型数据库逻辑架构单元从小到大是:块(block,MySQL称为page 页) > 区(extent) > 段(segment) > 表空间(tablespace)。 块是数据库存储的最小单元,也是最小逻辑存储构造。不同数据库块的默认大小不一样,MySQL是16k,Oracle是8k。当数据写入块中,如果一条数据过大,就会间断占用几个块。块和块之间并不一定在物理上相连,只是在逻辑上应用双向链表关联,它们之间的物理地位有可能很远,所以数据库个别不以块作为最小的存储调配单位。 区(extent)是由一个或多个间断的块组成,区是Oracle和MySQL数据库的最小调配单位。段(segment)是由一个或多个区组成。它能够是间断的,也能够不间断。它是一个独立的逻辑构造,是存储对象、表、索引的数据对象,一个段属于一个数据对象,每创立一个新的的数据对象,就会创立新的独立段。不同类型的数据对象有不同的段:数据段、索引段、回滚段、长期段。 表空间(tablespace)是逻辑构造最高一级,数据库由一个或多个表空间组成,一个表空间则对应着一个或多个物理的数据文件,罕用的表空间有数据表空间、索引表空间、零碎表空间、日志表空间。下图是MySQL InnoDB逻辑存储架构图。 《MySQL 技术底细 InnoDB存储引擎》阐明:如果表只存储了一条数据,那数据库也是要扫描整个最小存储单元(Oracle是block、MySQL是page)。这样设计是为了提高效率,因为物理I/O老本很大,不可能读、写一行数据就只扫描那行数据的磁盘。三、HEAPHeap表,也就是堆表,是Oracle数据库最常见、也是默认的表类型。堆表的数据会以堆的形式治理,意味着它的数据存取是随机的。数据库写数据时,会找到能放下此数据的适合空间。从表中删除数据时,则容许当前的写入和更新重用这部分空间。 比方先插入一个小行,接着插入一个大行,而且这个大行无奈和小行无奈存储在同一个块上,接着又插入一个小行。查问这三行数据它的默认排序是:小行、小行、大行。这些行并不按插入的程序显示的,Oracle会找到能放下此数据的适合空间,而不是依照工夫或者事务的某种程序来寄存。 堆表的特点是数据存储在表中,索引存储在索引里,这两者离开的。数据在堆中是无序的,索引让键值有序,但数据还是无序的。堆表中主键索引和一般索引一样的,都是寄存指向堆表中数据的指针。 四、B+TREEMySQL InnoDB 引擎将数据划分为若干页(page),以页作为磁盘与内存交互的根本单位,页默认的大小为16KB。这样每次磁盘IO至多读取一页数据到内存中或者将内存中一页数据写入磁盘,通过这种形式缩小内存与磁盘的交互次数,从而晋升性能。page的格局如下图: MySQL InnoDB 引擎是应用B+Tree,B+Tree的个性是主键索引(又称汇集索引)的叶子节点保留的是真正的数据,而辅助索引(又称二级索引、非汇集索引)叶子节点的数据保留的是通过指向主键索引而后取得数据(也就是只依据辅助索引查问,须要进行一次回表)。 五、CLOUMN-STORE传统的在线业务零碎(OLTP)个别是以行存的形式,因为一行一行的写入读取合乎在线业务场景。在联机剖析解决零碎(OLAP)中,经常须要统计分析某些列的数据,并对其进行分组、聚合运算,此时应用列存将会更高效。因为这样能够防止读取到不须要的列数据,另外同一列中的数据类型存储在一起也非常适宜压缩,从而一个块能够存储更多的数据。 Apache Parquet是面向剖析型业务的列式存储格局,一个Parquet文件的内容有Header、Data Block和Footer三局部组成。其中Data Block是具体存放数据的区域,它由多个Row Group(行组)组成,每个Row Group蕴含了一批数据。在Row Group中,数据按列会集寄存,每列的所有数据组合成一个Column Chunk(列块),一个列块具备雷同的数据类型,不同的列块能够应用不同的压缩。因而一个Row Group由多个Column Chunk组成,Column Chunk的个数等于列数。每个Column Chunk中,数据依照Page为最小单元来存储,依据内容分为Data Page和Index Page。如下图。 六、LSM-TREEGoogle 的三驾马车之一 BigTable,这篇论文提到 LSM(Log-Structured-Merge-Tree 日志构造合并树)数据结构。这之后 LSM 被多个数据库作为存储构造,比方 HBase、TIDB、Oceabase,以及MySQL 的MyRocks存储引擎。简略说LSM是一种磁盘严格程序写入、数据分level存储、每level的数据都按主键(Key)排序后存储、各level中的数据会定期merge而后写入下一level等个性的数据结构。 咱们晓得程序写的性能比随机写性能好很多,通过程序写代替随机写,晋升数据库性能是常见的办法之一,比方WAL技术。LSM 的数据数据写入是日志式的(append only)程序写入,写入数据时间接追加一条新记录。 当进行写数据时。先写入 Memtable 和预写日志(Write Ahead Logging, WAL)。因为Memtable 是内存操作,避免掉电须要将记录写入磁盘中的 WAL 保证数据不会失落。当 MemTable 写满后会被转换为不可批改的 Immutable MemTable,并创立一个新的空 MemTable。后盾线程会将 Immutable MemTable 写入到磁盘中造成一个新的 SSTable 文件,并随后销毁 Immutable MemTable。 ...

February 7, 2023 · 1 min · jiezi

关于程序员:亚马逊商城入门教程编程入门自学教程菜鸟教程免费教程分享

教程简介亚马逊商城疾速指南 - 从简略和简略的步骤开始学习亚马逊商城,从根本到高级概念,包含为什么抉择亚马逊?,亚马逊劣势,帐户类型,销售什么?,产品列表,费用,帐户设置,购买盒,运输形式,列出新产品,定价工具,获取最高利润,价格计算器,税务解决,运输流程,亚马逊卖家核心,治理库存,创立报告,治理评论,您的亚马逊评级,批量销售,最佳实际,故障排除问题,重要条款。 教程目录亚马逊商城 - 疾速指南亚马逊商城教程亚马逊商城 - 为什么抉择亚马逊亚马逊劣势亚马逊商城 - 帐户类型亚马逊商城 - 卖什么?亚马逊商城 - 产品列表亚马逊商城 - 费用亚马逊商城 - 帐户设置亚马逊商城 - 购买盒子亚马逊商城 - 送货形式亚马逊商城 - 列出新产品亚马逊商城 - 定价工具亚马逊商城 - 取得最高利润亚马逊商城 - 价格计算器亚马逊商城 - 税务解决亚马逊商城 - 送货流程亚马逊商城 - 卖家核心治理库存亚马逊商城 - 创立报告亚马逊商城 - 治理评论亚马逊商城 - 您的亚马逊评级亚马逊商城 - 批量销售亚马逊商城 - 最佳实际解决问题亚马逊商城 - 重要条款亚马逊商城 - 有用的资源探讨亚马逊商城→教程入口←菜鸟自学教程起源(IT宝库:https://www.itbaoku.cn)

February 7, 2023 · 1 min · jiezi

关于程序员:2022转变

2022平庸又不平庸的一年 上半场收到本人考研失败的音讯。虽有很多的不甘心,然而晓得本人温习的样子,俗话说行百里者半九十。本人没有在那半年致力,又何必艳羡他人考上了名校,一切都是徒劳的,拾掇了情绪,筹备春招。筹备本人的简历,发现自己做过的都是一些小我的项目,少了一些大我的项目的和带人的经验,简历上总是要吃一些亏。2021下半年原本是锤炼我带他人做大我的项目的时候,我抉择的考研,过后的确感觉晋升有些瓶颈了,通过破费半年工夫考研学习408对计算机基础知识的积淀。让我再去学习一些常识可能更好了解。看来大学学习一些货色并不是无用功,这些都是当前把握常识的根底。也算是有得有失吧。投了一些大厂,要么就是毫无消息,要么就是死在口试。开始钻研一些算法题的法则,最初也总结了一些算法题法则,应酬个别口试足够了。好在银行的面试绝对简略,就是等的工夫有点久,从4月初面试完,5月末才有后果,这要是早点出后果,也不必我后边面试一些小公司了。薪资在天津也可承受,总算是有了着落。总结来说,上半年找到了工作,参加了大我的项目开发,实现了毕设。 下半场进了公司后被分到了老项目组,老我的项目还在用c语言,属实有点受不了。好在后续分到了新项目组,应用微服务架构。从10月进入新项目组,到1月我的项目上线,见证了一个我的项目从无到有的过程,这是一个难得的机会,组里也有大牛,让我学到了很多。通过这几个月的开发过程,能感触到企业级开发的不同之处,和不相熟人之间单干的无力感。工作环境达到了公司最差,我的项目做的也并不称心,然而从中汲取了很多教训,至多后边我带新我的项目的时候,可能想的更多,如果有机会的话,哈哈哈哈。我的项目投产前真的很忙,加班加到凌晨5点,看来我还是年老。然而在银行做我的项目,业务才是最重要的,技术是其次。 20232023,致力工作,再接再厉。

February 6, 2023 · 1 min · jiezi

关于程序员:阿里云改革时间改革后考试内容

依据阿里云最新布告,阿里云官网对云计算ACA、大数据ACA、人工智能ACA三门认证做出了降级调整,新版课程如下: 1、阿里云云计算ACA云计算根底共 6 课时 课时1 : 数据中心概述20分39秒 课时2 : 云计算概述32分08秒 课时3 : 云计算核心技术23分11秒 课时4 : 云计算分类33分07秒 课时5 : 云计算架构23分35秒 课时6 : 阿里云云计算服务概述38分16秒 弹性计算共 6 课时 容器服务共 8 课时 存储服务共 2 课时 云数据库共 2 课时 云网络共 6 课时 云上平安防护共 11 课时 2、阿里云大数据ACA 大数据工程师ACA认证介绍共 1 课时 课时1 : 大数据工程师ACA认证介绍06分27秒 大数据概述共 2 课时 大数据技术生态共 3 课时 数据采集与预处理共 3 课时 数据存储与治理共 3 课时 大数据分析与开掘.共 5 课时 数据可视化共 3 课时 大数据工程师ACA认证课总结共 1 课时 3、阿里云人工智能ACA ...

February 1, 2023 · 1 min · jiezi

关于程序员:这些简历的坑你踩了多少

最近给一位小伙伴看了下简历,忽然发现,原来我曾经很久都没有评阅过简历了,最近一次接触简历还是编写本人跳槽的简历,陌生了呀。 看着这份简历,还是让我回想起了十分多有意思的事件,我简略分了下类。明天先跟大家分享一些,在过来,我看到过的几百份简历当中,存在的一些问题。 1. 篇幅过长已经看到过 5 页纸的简历,看着简短地我的项目形容,我的心田只有 2 个想法:间接回绝面试吧;要不立即开始面试间接问吧,我真得不想看上来了。 2. 呈现错别字我已经听到过看个人简历识人的舆论,感觉是有肯定情理的。从个人简历中,除了根底信息之外,最外围能看进去这个候选人的职业倒退路线和细节。错别字是十分重要的细节,如果呈现了错别字,那么能够看进去候选人有以下两个细节问题: 没有 review 习惯。预先 review 是解决大意的一项十分无效的技巧,很显著,这个候选人没有这个习惯。对本人的个人简历不够尊重。找工作是人生大事,个人简历是其中很要害的一个环节,难道不应该予以器重吗?难道不值得本人反复推敲吗?连个人简历都不尊重,很难让他人置信候选人会对所有事件都很尊重。3. 越拆穿越显刻意很多人会刻意拆穿本人不太好的教育经验,比方大专毕业只写个学校名称,非科班业余不写进去等等,却不晓得越拆穿就越显得刻意。对于本人的过来真得没必要刻意拆穿,教育经验是简历中十分重要的一部分,是不可或缺的,如果招聘方有硬性要求,也逃不过他们的眼睛,完完整整写分明,会更显诚意。 4. 堆砌技术栈看到过半页纸的“善于 xxxx”,个别这种适宜毕业生的简历,因为没什么我的项目教训可写,只能这么撑门面了,这个是能够了解的,然而社招同学的简历也这么搞是怎么回事?更惨的是,面试官在面试的时候问到相干技术,还答不进去,这不是给本人挖坑吗? 5. 心愿全都是亮点,后果就是毫无亮点有很多简历看起来十分平淡,不是因为做的我的项目很少,相同,很多简历的我的项目经验十分多,内容也很空虚,但整体看下来就是感觉很平淡。不会包装诚然是其中的问题,但更为严重的是,候选人没有突出重点的意识才是致命伤。 6. 我的项目经验程序问题大多数状况来说,依照工夫倒序来组织我的项目经验是比拟正当的,因为最近做的我的项目历历在目,内容必定会更加具体,个别随着本身成长,我的项目也会越大越简单。但也有很多不是这样的,有些简历的第 2 个我的项目却是最详实的,既然把它作为重点,为什么不放在最后面呢?略微调整一下简历的构造,不要用工夫维度来做排序规定就好了。 7. 短少主观数据对于工作 2 年以内的小伙伴的简历,短少主观数据形容还算说得过去,然而工作 2 年以上的小伙伴就应该须要有一些主观数据的成绩形容了,这表明本身是有关注成绩的品质的。 临时就只整顿这么多吧,其余的一些细小问题也不算太大,就不多说了。 具体问题具体分析,欢送有须要的小伙伴能够加我 V 相互探讨个人简历的编写技巧哈。 欢送关注我并私聊,进行无累赘沟通,我会 长期职业倒退布局领导近期工作重点交换职场解惑面试辅导

February 1, 2023 · 1 min · jiezi

关于程序员:什么是最大子数组问题

本文首发自「慕课网」,想理解更多IT干货内容,程序员圈内热闻,欢送关注! 作者| 慕课网精英讲师 JdreamZhang 最大子数组(Max Subarray)问题,是计算机科学与技术畛域中一种常见的算法问题,次要能够利用分治思维进行疾速实现。最大子数组问题形容如下:如果咱们有一个数组,数组中的元素有负数和正数,如何在数组中找到一段间断的子数组,使得子数组各个元素之和最大。最大子数组问题在生活中有很多理论状况能够与其对应,比如说咱们察看某一股票在一段时间内的走势,请问如何找出在哪一天买入,哪一天卖出能够赚到最大差价(这里假如你曾经晓得股票的价格走势)? 为了实现最大化的股票收益,咱们须要思考的是买进和卖出时候的价格变动幅度,因而从该股票的每日变动幅度来思考这个问题更加适合。所以,咱们能够将这个问题稍作变形:将股票价格走势对应为每日股票价格涨跌,涨记为正值,跌记为负值,而后一段时间就对应一个正负数数组,并试图找到该数组的最大子数组,就能够取得最大收益。接下来,就让咱们看看如何利用分治算法求解最大子数组问题吧。1. 分治法求解最大子数组问题在最大子数组问题之后,咱们一起来看一下如何利用分治思维求解最大子数组问题。这里咱们假如待初始的数组为 [12, -3, -16, 20, -19, -3, 18, 20, -7, 12, -9, 7, -10],记为数组 A,并用 A [low,high] 示意这个数组,其中 low,high 是这个数组的最小最大下标, low = 0,high = A.length -1 , 而后咱们须要找到该数组的其中某一个最大子数组。Tips: 这里咱们须要留神,同一数组的最大子数组可能有多个,所以咱们在这里求解的时候只说求解某一个最大子数组。1.1 分治算法求解思路在这里,咱们用分治算法求解最大子数组问题,次要思路如下:步骤 1:找到数组 A 的两头元素,其下标记为 mid,依据分治策略,将数组 A [low,high] 依据两头元素划分为 A [low,mid], A [mid+1,high] 两个局部;步骤 2:假如数组 A 的最大子数组为 A [i, j],那么 A [i, j] 只有以下三种可能:a: 最大子数组 A [i, j] 齐全位于 A [low, mid] 中,此时有 low <= i <= j <= mid;b: 最大子数组 A [i, j] 齐全位于 A [mid+1, high] 中,此时有 mid+1 <= i <= j <= high;c: 最大子数组 A [i, j] 跨域了两头元素,则 low <= i <= mid <= j <= high。别离计算上述三种对应的最大子数组的后果;Tips: 在这里,状况 a 和状况 b 这两种状况所得的子问题和之前求解数组 A 的最大子数组的问题模式齐全一样,这里是分治思维的次要体现,将大的问题拆分成了两个雷同模式的小问题;状况 c 这时候能够间接求解,在 3.2 节中会具体介绍其求解过程。步骤 3对步骤 2 三种状况的求解后果进行比拟,其中最大子数组的后果为最大值的状况就是咱们的所求后果。1.2 求解思路详解首先,咱们将 3.1 节中的求解思路用下图示意: ...

February 1, 2023 · 3 min · jiezi

关于程序员:Python异步-定义创建和运行协程5

咱们能够在咱们的 Python 程序中定义协程,就像定义新的子例程(函数)一样。一旦定义,协程函数可用于创立协程对象。“asyncio”模块提供了在事件循环中运行协程对象的工具,事件循环是协程的运行时。 1. 如何定义协程协程能够通过“async def”表达式定义。这是用于定义子例程的“def”表达式的扩大。它定义了一个能够创立的协程,并返回一个协程对象。 # define a coroutineasync def custom_coro(): # ...用“async def”表达式定义的协程被称为“协程函数”。 而后协程能够在其中应用特定于协程的表达式,例如 await、async for 和 async with。 # define a coroutineasync def custom_coro(): # await another coroutine await asyncio.sleep(1)2. 如何创立协程一旦定义了协程,就能够创立它。这看起来像是在调用一个子程序。 ...# create a coroutinecoro = custom_coro()这不会执行协程。它返回一个“协程”对象。“协程”Python 对象具备办法,例如 send() 和 close()。它是一种类型。 咱们能够通过创立协程实例并调用 type() 内置函数来报告其类型来证实这一点。 # SuperFastPython.com# check the type of a coroutine # define a coroutineasync def custom_coro(): # await another coroutine await asyncio.sleep(1) # create the coroutinecoro = custom_coro()# check the type of the coroutineprint(type(coro))运行示例报告创立的协程是一个“协程”类。咱们还会失去一个 RuntimeError,因为协程已创立但从未执行过,咱们将在下一节中探讨它。 ...

January 31, 2023 · 1 min · jiezi

关于程序员:TypeScript-到底应该怎么学

本文首发自「慕课网」,想理解更多IT干货内容,程序员圈内热闻,欢送关注! 作者| 慕课网精英讲师 Lison 这篇文章我会教给大家如何去自学TypeScript,哪怕TypeScript更新了,你也能毫无压力地迎接它的新个性。好,接下来让咱们开始吧。1.2.1 学会看文档英文官网文档始终是及时更新的。但即使是官网的文档,有一些更新在更新日志里写了,而老手指南里却没有及时同步更新,所以有时看指南也会遇到困惑,就是文档里写的和你理论验证的成果不一样。遇到这种问题,首先确定你应用的TypeScript版本,而后去更新日志里依据不同版本找对这部分常识的更新记录。如果找到了,看下这是在哪个版本做的降级;如果你不释怀,能够把TypeScript版本降到这个版本之前的一个版本,再验证一下。TypeScript 是有一个中文文档的,然而这个文档只是对英文文档的翻译。官网文档中的小疏漏,这个文档也没有做校验,而且更新是有点滞后的。在写这篇文章的时候,TypeScript最新公布的版本为3.4,然而中文文档还是在3.1。所以想理解TypeScript的最新动静,还是要看英文官网文档的。不过咱们还是要感激提供中文文档的译者,这对于英文不是很好的开发者帮忙还是很大的。 1.2.2 学会看报错我的项目搭建的时候,要应用 TSLint 对代码格调进行标准校验,依据 TSLint 配置不同,提醒成果也不同。如果咱们配置当书写的代码不符合规范,应用 error 级别来提醒时,会和 TypeScript 编译报错一样,在问题代码上面用红色波浪线标出,鼠标放上去会有谬误提醒。所有如果咱们应用了TSLint,遇到报错的时候,首先要辨别是 TSLint 报错还是 TS 报错,来看下如何辨别:下面这个报错能够从红色方框中看到,标识了 tslint,阐明它是TSLint的报错。前面括号里标的是导致这条报错的规定名,规定能够在 tslint.json 文件里配置。对于 TSLint的应用,咱们会在搭建开发环境一节解说。示例中这条报错是因为 no-console 这个规定,也就是要求代码中不能有 console 语句,然而咱们在开发时应用 console 来进行调试是很常见的,所以你能够通过配置 TSLint 敞开这条规定,这样就不会报错了。但咱们应该恪守标准,当咱们决定引入 TSLint 的时候,就阐明这个我的项目对代码品质有更高的要求,咱们不应该在书写代码遇到TSLint报错就批改规定,而是应该依据规定去批改代码。下面这个报错能够从红色方框中看到,标识了 ts,阐明它是 TypeScript 编译器报的谬误。在咱们书写代码的时候,通过强类型零碎,编译器能够在这个阶段就检测到咱们的一些谬误。前面括号里跟着的 2322 是错误代码,所有的错误代码你能够在文档的错误信息列表中查看。不过你个别并不需要去看文档,因为这里都会给你标出这个错误码对应的谬误提醒,而且这个错误信息依据你的编辑器语言能够提醒中文错误信息。很显著这个谬误是因为咱们给 name 指定了类型为 string字符串 类型,而赋给它的值是123数值类型。下面两种是在编写代码的时候就会遇到的谬误提醒。还有一种就是和 JavaScript 一样的,在运行时的报错,这种谬误须要在浏览器控制台查看。如果你调试的是 node 服务端我的项目,那你要在终端查看。来看这个例子:当我在代码中打印一个没有定义的变量时,在书写代码的时候会做提醒,且当程序运行起来时,在浏览器控制台也能够看到报错。你能够关上浏览器的开发者工具(Windows零碎按F12,Mac零碎按control+option+i),在 Console 栏看到谬误提醒:红色语句即错误信息。上面红色at前面有个文件门路main.ts,蓝色框中圈出的也是个文件门路,示意这个谬误呈现在哪个文件。这里是呈现在main.ts中,问号前面的cd49:12示意错误代码在12行,点击这个门路即可跳到一个该文件的浏览窗口:在这里咱们就能间接看到咱们的错误代码被红色波浪线标记了,这样你批改起谬误来就很明确晓得是哪里出错了。1.2.3 学会看申明文件申明文件咱们会在前面讲。咱们晓得原来没有 TypeScript 的时候,有很多的 JS 插件和 JS 库,如果应用 TypeScript 进行开发再应用这些 JS 编写的插件和库,就得不到类型提醒等个性的反对了,所以 TypeScript 反对为 JS 库增加申明文件,以此来提供申明信息。咱们应用 TypeScript 编写的库和插件编译后也是 JS 文件,所以在编译的时候能够抉择生成申明文件,这样再公布,使用者就仍然能失去 TypeScript 个性反对。一些 JS 库的作者曾经应用 TypeScript 进行了重写,有些则是提供了申明文件,一些作者没有提供申明文件的,大部分库都有社区的人为他们补充了申明文件,如果应用了本身没有提供申明文件的库时,能够应用npm install @types/{模块名}来装置,或者使用咱们前面讲到的常识自行为他们补充。看这些库的申明文件可能帮你进步对 TypeScript 的理解水平。因为可能你在理论开发中所接触的场景不是很简单,使用到的 TypeScript 语法点也不是很全面,所以就会导致常常用的你很相熟,不常常用的缓缓就忘掉了,甚至有的从头至尾你都没有应用过。很多常识你只看理论知识,或者看简略的例子,是没法真正了解并粗浅记忆的,只有在理论场景中去应用一下,能力加深了解。所以咱们能够从这些库的申明文件动手,还有就是从 TypeScript 内置的 lib 申明文件动手。 ...

January 31, 2023 · 1 min · jiezi

关于程序员:云计算行业发展怎么样该怎么进入这一行

从人类社会进入工业时代后,社会产生了微小的改革,科技在一直地倒退,现如今智能化社会曾经成为了将来的发展趋势,而且各行各业都将转型为新模式,这就须要大量的专业人才来反对新技术的研发、设施的运行等等,因而在将来的倒退中,云计算、大数据、人工智能等科技是最为重要的技术,各个国家都在投入大量的人力和物力,只求能够在新反动中占据领头位置,我国天然也不甘落后。 因而,在将来的市场上,懂得新兴的智能化技术,能够说是十分吃香的,除此之外,还有机会到世界各地去倒退,机会十分多。在这之中,最根底,也是最热门的就是云计算行业,很多智能化流动离不开算力,而云计算则是将扩散在各处的计算汇合到云端上,独特计算,最初再反馈给客户端。为了构建智能化社会,很多机构须要业余的云计算人才来维持运行,一直地有人想进入这一行,那么则须要证书来进步本人的能力。 阿里云云计算认证 目前市面上最热门的云计算认证就是阿里云的,一方面是因为阿里云占市场份额大,合作伙伴泛滥,一方面则是因为阿里云的认证性价比高,不论是刚刚进入社会的应届毕业生,还是曾经工作很久的打工人,都能够找到适宜本人的认证。 阿里云的认证分未高级的ACA认证、中级ACP认证以及高级的ACE认证,目前因为ACE的认证改革,考试的费用和难度大大增加,很多人都会抉择ACP认证来考,既能晋升本人的能力,也不必破费太多钱,很多机构有折扣的报名券,有须要的能够在认证大使上具体理解,具体理解一下。 华为云云计算认证 作为一个后起之秀,华为的发展势头十分迅猛,在短短几年内就曾经成为了全国第二的厂商,并且还在不停回升,因而华为云的认证在业界内的受认可水平也是十分高的,各个领域内都有其单干商。 华为云的认证分为高级HCIA认证、中级HCIP认证以及高级HCIE认证,考生能够依据本人的须要来抉择适宜的认证,刚开始能够抉择等级较低的认证,而有了肯定的能力后,中级认证能够帮忙本人升职加薪,高级认证的费用和考试模式比拟麻烦,个别状况下,没有人会去考

January 30, 2023 · 1 min · jiezi

关于程序员:免费领取APP开年运营礼包解码2023用户新增长

站在2023年的开始,各大APP曾经开启了紧锣密鼓的经营筹备工作,向新一年的经营指标迈进。 在这个重要的起跑阶段,咱们为大家筹备了一份“开年经营礼包”,心愿通过用户经营三步法,帮忙 APP找到提效率、强转化、促沉闷的无效门路,实现新年新增长! 1提效率:一个平台搞定APP拉新、促活、转化每一步 APP要实现用户拉新、促活、转化,会通过"制订指标-用户洞察-用户分层-策略制订-用户触达-后效剖析”等较长的经营链路,往往须要对接多个平台能力实现。个推用户经营平台依据APP理论的经营链路打造了弱小的用户洞察、分层、触达与数据分析能力,帮忙APP轻松做好数智化经营的每一步,无效晋升用户沉闷和转化。 在用户洞察环节,APP能够借助个推数据能力构建欠缺的标签体系,深刻理解用户的趣味偏好、媒体偏好、线下场景偏好等。在用户分层环节,联合APP自有端内数据和个推用户经营平台,经营人员能够通过自定义规定和算法模型疾速实现指标用户群圈选。在用户触达环节,APP能够将创立的用户群主动同步至个推音讯推送平台,一键触达用户,实现精细化的用户沟通。同时,个推用户经营平台还提供后效数据归因剖析能力,为APP的策略优化、科学决策提供撑持。 2强转化:开掘潜在付费用户,晋升经营转化 在流量红利逐渐见顶的当下,APP的经营重心逐步从拉新转移到存量用户精细化经营阶段。做好APP付费用户的预测和转化,是APP晋升经营转化率的要害。通过个推用户经营平台,APP能够轻松做好付费预测模型构建、潜在高付费用户圈选、用户分层及触达等关键环节的精细化经营,疾速找到高潜付费用户。 在构建付费预测模型环节,APP可先从自有用户池中,别离筛选出一批付费用户样本和一批未付费用户样本,再通过个推用户经营平台,多维洞察剖析正、负样本的线上和线下的偏好特色,最初联合个推大数据能力对样本特色进行机器学习等,构建出“付费预测模型”,找出潜在高付费偏向用户群体。 筛选出高潜用户后,接下来,经营人员就能够联合高潜用户群体的趣味偏好等,来进行用户分层,最初再通过个推自有的音讯推送平台一键触达用户,进一步促成转化。 3促沉闷:无效辨别并激活缄默用户 用户下载了APP只是经营的开始,后续如果经营动作跟不上,用户就容易变成缄默用户,甚至散失掉。因而,采取有效的促活策略,对APP经营来说十分重要。通过个推用户经营平台,APP只需四步即可让缄默用户“活起来”。 首先,APP能够依据本身的行业属性、业务状况以及经营教训,来自定义“缄默用户”规定,圈选出适合的缄默用户群。比方,某资讯类APP在世界杯期间,圈选出“近30天未登录APP”的缄默用户。 找到缄默用户群后,下一步,就是对这部分人群做用户洞察。个推用户经营平台领有个推弱小的数据能力撑持,可对APP自有端内数据进行补充,助力经营人员构建出更加平面多维的缄默用户画像。在促活阶段,经营人员能够间接通过平台调用个推自有的音讯推送服务,一键触达不同用户群。同时,个推用户经营平台还提供触达后效剖析能力,可帮助经营人员进行策略优化,助力更多缄默用户转化为沉闷用户,缩短用户生命周期。 以上就是个推“开年经营大礼包”的全副精髓内容,心愿能为大家解决APP用户经营过程中的“疑难杂症”,晋升数智化经营能力。在新的一年,咱们也心愿更多的APP可能通过“个推用户经营”平台进一步晋升经营效率,实现用户活跃度与转化率的新降级! 欢送大家前来征询,支付个推用户经营平台【收费试用名额】,咱们将一对一为您开明。

January 30, 2023 · 1 min · jiezi

关于程序员:ssh2jsShell一套组合拳下来一年要花2080分钟做的工作竟然节省到52分钟~

前言进入了新的一年,团队被调配了新的工作内容——每周巡检。 巡检工作简略,但须要人工重复性地登陆近程服务器、输出反复的命令,而后将命令的后果记录下来。每做一次预计花40分钟,但要每周做,一年52周,一年下来就要花40*52=2080分钟,这仅仅是团队一个人一年要花的工夫。 不能这么玩呀,纯纯工具人,所以我始终在思考如何用程序帮我主动巡检掉。这篇文章的呈现,阐明我的想法方向是正确的,收益可观一年要花2080分钟,被我减到52 分钟。 如果再扩大程序帮忙到团队,这个公式将从40*52*团队人数变成1*52*团队人数,工夫等于金钱。 未主动巡检: 手动连贯登陆近程服务器,再输出相应的命令获取后果,而后人工根据后果判断是否异样,相当麻烦,而且我要执行的命令不止一条。 主动巡检: 运行macOS笔记本创立好的快捷指令,它会主动巡检服务器,并且巡检实现后间接关上巡检后果表格。当然没有macOS仍然能够,但就是没有快捷指令这步,须要本人执行程序。 残缺源码:blog/ssh 实现实现难点自动化巡检思路简略,思路如下: 本地程序连贯登陆近程服务器→本地shell命令近程执行→本地程序获取命令后果→后果数据整顿成表格 实现过程中次要有以下两个难点: Node.js本地运行程序如何连贯登陆近程服务器登陆近程服务器帐号权限有余,在应用sudo命令时,如何主动输出明码实现细节解决Node.js本地运行程序如何连贯登陆近程服务器: 社区已有的计划ssh2,它是用纯JavaScript为Node.js编写的SSH2客户端和服务器模块。能够应用它连贯到近程服务器,并且ssh2提供了办法能够执行shell命令。 ssh2官网案例: //...const { Client } = require('ssh2');const conn = new Client();conn.on('ready', () => { console.log('Client :: ready'); //执行uptime conn.exec('uptime', (err, stream) => { if (err) throw err; stream.on('close', (code, signal) => { console.log('Stream :: close :: code: ' + code + ', signal: ' + signal); conn.end(); }).on('data', (data) => { //监听数据 console.log('STDOUT: ' + data); }).stderr.on('data', (data) => { console.log('STDERR: ' + data); }); });})//...官网案例仅执行一条shell命令,当依照程序顺次执行一条以上的命令,官网的这个写法会十分麻烦。例如:首先执行docker ps -a -q获取所有docker容器id,而后再docker logs --tail 200 id ...

January 30, 2023 · 3 min · jiezi

关于程序员:什么是背包问题

本文首发自「慕课网」,想理解更多IT干货内容,程序员圈内热闻,欢送关注! 作者| 慕课网精英讲师 JdreamZhang 假如咱们一共有 n 种物品,每种物品 i 的价值为 vi,分量为 wi,咱们有一个背包,背包的容量为 c(最多能够放的物品分量不能超过 c),咱们须要抉择物品放入背包中,使得背包中抉择的物品中总价值最大,在这里每个物品能够只抉择局部。这便是咱们常说的背包问题 背包问题是一种常见的能够用贪婪算法进行求解的问题,接下来,就让咱们看看如何利用贪婪算法解决背包问题。 贪婪算法求解背包问题首先,这里咱们思考背包的容量为 30,并给出这个问题中咱们思考到的各类物品及对应的分量和价值,如下: 回顾一下咱们在贪婪算法介绍中提到的,可能利用贪婪算法求解的问题须要满足两个条件:最优子结构和贪婪抉择,接下来,咱们就具体来看看在背包问题中的最优子结构和贪婪抉择别离是什么。 首先,如果一个问题的最优解蕴含其子问题的最优解,则此问题具备最优子结构的性质。问题的最优子结构性质是该问题是否能够用贪婪算法求解的关键所在。对于背包问题,很显然它是满足最优子结构性质的,因为一个容量为 c 的背包问题必然蕴含容量小于 c 的背包问题的最优解的。 其次,咱们须要思考在背包问题中,咱们应该依照什么样的贪婪抉择进行选取。很显然,如果要使得最终的价值最大,那么必然须要使得抉择的单位分量的物品的价值最大。所以背包问题的贪婪抉择策略是:优先选择单位分量价值最大的物品,当这个物品抉择完之后,持续抉择其余价值最大的物品。 这里的背包问题能够用贪婪算法实现,是因为背包抉择放入的物品能够进行拆分,即并不需要放入整个物品,能够抉择放入局部物品,咱们这样的背包抉择问题为局部背包问题(能够只抉择物品的局部),与之对应的另一种背包问题为 0-1 背包问题,这个时候整个物品不能够拆分,只能够抉择放入或者不放入,0-1 背包问题用贪婪算法并不能求得精确的解,须要用动静布局算法求解。 背包问题求解详解: 在这里,咱们依照优先选择单位分量价值最大的物品,所以第一步须要计算单位每个物品的单位价值,如下: unitValue(1) = 20/10 = 2unitValue(2) = 30/5 = 6unitValue(3) = 15/15 = 1unitValue(4) = 25/10 = 2.5unitValue(5) = 10/20 = 0.5代码块12345所以咱们有: unitValue(2) > unitValue(4) > unitValue(1) > unitValue(3) > unitValue(5)代码块1当思考背包的容量为 30 时, 咱们发现能够依照物品的单位价值进行顺次放入,直至背包容量放满或者物品放完为止,放入的过程如下: 依照如上步骤咱们简略剖析了一下背包问题的求解过程,接下来,咱们看一下如何用代码实现背包问题。 2.JAVA 代码实现在阐明求解背包问题的整个过程之后,接下来,咱们看看如何用 java 代码实现背包问题的求解。 import java.util.ArrayList;import java.util.Collections;import java.util.List; ...

January 30, 2023 · 2 min · jiezi

关于程序员:for-forEach和map的区别

在开发过程中,常常须要对数组进行遍历。咱们能够应用 for, forEach 和 map 来实现对数组的遍历,他们各自有什么特点?让咱们来一探到底。 for根本应用 (以for..of为例)const arr = [1, 2, 3]for (let item of arr) { console.log(item)}// 1// 2// 3个性1.能够应用 break 提前终止遍历。 const arr = [1, 2, 3]for (let item of arr) { if (item > 1) { break } console.log(item)}// 12.能够应用 continue 来跳过以后的循环。 const arr = [1, 2, 3]for (let item of arr) { if (item === 2) { continue } console.log(item)}// 1// 3forEach根本应用const arr = [1, 2, 3]arr.forEach((item) => { console.log(item)})// 1// 2// 3个性1.不能通过 continue 跳过循环,想跳过循环须要应用 return。 ...

January 29, 2023 · 2 min · jiezi

关于程序员:不过是享受了互联网的十年红利期而已

你好呀,我是歪歪。 去年的最初一天,我在 B 站公布了这个视频: 我真没想到这个长达一个小时的视频的播放量能到这么多,而且竟然是一个投币比点赞和珍藏还多的视频。 评论区加上弹幕,有上千条观众的留言。每一条留言都代表一个观众的感触,外面极大局部的感触总结起来大多是示意对于我集体这十年经验感叹和艳羡,然而我是感觉十年的工夫这么长,谁还不能提炼出几两故事和几段感悟呢? 感觉感叹的,只不过是在我的视频外面看到了几分本人的影子。感觉艳羡的,只不过是以另外一种我艳羡的形式生存着。 还是有人说是逆袭,我并不感觉这是逆袭。逆袭个别是说绝地出击的故事,然而我感觉这十年,我还没有真正的走到过“绝地”,更多的只是随着时代同流合污,我集体的致力,在时代的浪潮前,微不足道,只不过在一系列的机缘巧合之下,我使劲的方向恰好和浪潮的方向统一而已。 我过后没有想到一个好的词语来形容这个“和浪潮的方向统一”,所以过年期间我也始终在认真的思考这个问题。 直到过年期间,我坐在火炉前听家里的前辈聊天,一个前辈问另外一个长辈:你什么时候把女朋友带回来给咱们看看呢? 长辈戏谑的答复说:我当初本人都过的不好呢,怕是没有女孩子违心跟我哦。 前辈说:我以前嫁过来的时候,你爷爷以前还不是啥都没有,就一间土巴屋,一个烂瓦房。结婚嘛,两个人一起致力不就把日子过好了。 我过后好想说一句:那个时代过来了,当初不一样了。 然而究竟还是没说进口,然而就在把这句话咽下去的霎时,我想明确了后面对于“浪潮”的问题,其实就一句话: 我只不过是有幸享受到了时代的红利罢了。有时候的看起来让人艳羡的人、胜利的人,只不过是享受到了时代的红利罢了,与集体的致力水平关系真的不大。 我说的时代的红利,就是互联网技术、计算机专业横蛮倒退的这十年光景。 在视频外面,我说了一句话:我是被调剂到计算机专业的。 而后有一些弹幕示意十分的震惊: 是的,在 2012 年,计算机专业并不是一个被看好的热门业余,甚至有点被“淘汰”的感觉。 我记得那一年录取之后,给一个亲戚说是就读计算机专业,他说:怎么学了个这业余啊,当前每个家庭外面都会有一台计算机,到时候人人都会应用计算机,还学它干啥? 这句话尽管当初看起来很搞笑,然而在那个时候,我还没有接触到它的时候,我觉得很有情理。 尽管我是调剂到“计算机”的,然而前提也得是我填报意愿的时候填写了“计算机专业”,对吧。 所以问题就来了:我当年是怎么高瞻远瞩,怎么三思而行,怎么推演计算,怎么预测将来,想着要填报一个计算机专业呢? 为了答复这个问题,我往年回到老家,专门把这个货色翻了进去: 这是我高考完结那年,学校发的 4 本和填报意愿相干的书,书外面次要的内容就是过来三年各个批次,各个学校,各个业余的报考人数、录取人数、录取最低分数、录取均匀分数、录取最高分数的信息统计: 我当年填报意愿,就是通过翻阅这四本书来找到本人能够填报的大学。然而我的高考意愿特地好填,因为我高考问题只超过二本线 13 分,所以我间接看二本院校外面每年卡着分数线招收学生的学校就能够了。在这个条件下,没有多少学校能够抉择。 最初录取我的大学,是 2012 年那一年刚刚由专科学校降级为二本院校的一所大学。所以那一年是它第一次招本科生,没有过往的数据能够参考,报它的起因是因为我感觉它刚刚从专科降级为本科,录取分数应该不会太高。 填报意愿的时候一个学校能够填写六个业余,刚好它也只有六个本科专业,所以我就依照报纸上的程序,挨个填写,而且还勾选了“遵从调剂”。 而这六个业余,我也通过后面的书翻到了: 过后对于这六个业余,我齐全没有任何理解。基本不晓得要学习什么内容,更加不晓得毕业之后会从事什么工作。 起初入校之后我才晓得,报资料成型及控制工程和机械电子工程业余的人最多,计算机科学与技术因为报的人没有报满,所以我被调剂过来了。 能够必定的说,如果当年这个学校没有计算机的本科专业,我就不会走上计算机的路线。 其实我填报意愿的状态,和当年绝大部分高考学生的状态一样,十分的茫然。在高中,学校也只教了高考考场上要考的货色,为了这点货色,咱们筹备了整整三年。然而当初回头去看,如何填报意愿,其实也是一件十分值得学习理解的事件,而不是高考完结之后,学校发几本材料就完事的。 我过后填报意愿时最外围的想法是,只有有大学录取就行了,至于业余什么的,不重要。 在意愿填报指南的书外面,我发现有大量的篇幅站在 2012 年视角去剖析将来的待业局势。 这部分,我认真的读了一遍,发现对于计算机局部提到的并不多,只有寥寥数语,整体是持看好态度,然而大多都是一些正确的“废话”,对于当年的我来说,很难提炼出有价值的信息,来帮忙我填写意愿。 起初得悉被计算机录取了之后的第一反馈是,没关系,入校之后能够找机会转业余,比方转到机械。 为什么会想着机械呢? 因为那一年,或者说那几年,最火的业余是土木工程,紧随其后的大略就是机械相干的业余: 而这个学校没有土木业余,那就是想当然的想往人多的,也是学校的王牌业余“机械”转了。 计算机专业,尽管也榜上有名,然而那几年的风评真的是十分个别,更多的是无知,就像是亲戚说的那句:当前人人都有一台计算机,你还去学它干啥? 我也找到了一份叫做《2011年中国大学生待业报告》的报告,外面有这样一句话: 真的如同弹幕外面一个小伙伴说的:土木最火,计算机下水道。 所以我在十年前被调剂到计算机专业,也就不是一个什么特地奇怪的事件了。 你说这是什么玩意? 这外面没有任何的高瞻远瞩、三思而行、推演计算、预测将来,就是纯正的运气。 就是恰好站在时代的大潮前,撅着屁股,等着时代使劲的拍上那么一小下,而后随着浪花飘就完事了吗? 我也已经想过,如果我能把它包装成一个“春江水暖鸭先知”的故事,来体现我对于将来精准的预判就好了,然而现实情况就是这么的骨感和魔幻,没有那么多的预判。 所以有很多人,特地是一些在校的或者刚刚毕业的大学生,通过视频找到我,来求教我对于职业倒退,对于将来方向,对于人生布局的问题。 说真的,我有个屁的资格和能力来帮你剖析这些问题啊。我本人这一摊子事件都没有搞清楚,我的职业前路也是迷雾重重,我何德何能给他人指出人生的方向? ...

January 28, 2023 · 1 min · jiezi

关于程序员:Python-异步-协程4

Python 提供一流的协程,具备“coroutine”类型和新的表达式,如“async def”和“await”。它提供了用于运行协程和开发异步程序的“asyncio”模块。 在本节中,咱们将更深刻地理解协程。 1. 什么是协程协程是一个能够挂起和复原的函数。它通常被定义为通用子程序。能够执行子程序,从一点开始,在另一点完结。然而,协程能够执行而后挂起,并在最终终止之前复原屡次。具体来说,协程能够管制它们暂停执行的确切工夫。这可能波及特定表达式的应用,例如 Python 中的“await”表达式,如 Python 生成器中的 yield 表达式。 协程可能因多种起因而暂停,例如执行另一个协程,例如期待另一个工作,或期待一些内部资源,如套接字连贯或过程返回数据。 协程用于并发。能够同时创立和执行许多协程。它们能够管制何时挂起和复原,从而容许它们在并发工作执行时进行单干。这称为合作式多任务处理,不同于通常与线程一起应用的多任务处理,称为抢占式多任务处理。抢占式多任务波及操作系统抉择暂停和复原哪些线程以及何时这样做,而不是在合作多任务的状况下由工作本人决定。 当初咱们对什么是协程有了一些理解,让咱们通过将它们与其余相熟的编程构造进行比拟来加深这种了解。 2. 协程与例程和子例程“例程”和“子例程”在古代编程中通常指的是同一事物。兴许更精确地说,例程是程序,而子例程是程序中的函数。例程有子例程。它是一个离散的表达式模块,它被调配了一个名称,能够承受参数并能够返回一个值。 子例程:可按需执行的指令模块,通常已命名,可采纳参数并返回值。也称为函数一个子程序被执行,遍历表达式,并以某种形式返回。通常,一个子程序被另一个子程序调用。协程是子例程的扩大。这意味着子例程是一种非凡类型的协程。 协程在很多方面都像子例程,例如: 它们都是离散的命名表达式模块。他们都能够承受争执,也能够不承受。它们都能够返回一个值,也能够不返回。次要的区别在于它在返回和退出之前抉择了屡次暂停和复原执行。协程和子例程都能够调用本人的其余实例。一个子程序能够调用其余子程序。协程执行其余协程。然而,协程也能够执行其余子例程。当一个协程执行另一个协程时,它必须暂停执行并容许另一个协程在另一个协程实现后复原。这就像一个子程序调用另一个子程序。不同之处在于协程的暂停可能容许任意数量的其余协程也运行。这使得调用另一个协程的协程比调用另一个子例程的子例程更弱小。它是协同程序促成的合作多任务处理的外围。 3. 协程与生成器生成器是一种能够暂停其执行的非凡函数。生成器函数能够像一般函数一样定义,只管它在暂停执行并返回值时应用 yield 表达式。生成器函数将返回一个能够遍历的生成器迭代器对象,例如通过 for 循环。每次执行生成器时,它都会从上一次挂起的点运行到下一个 yield 语句。 协程能够应用“await”表达式挂起或屈服于另一个协程。一旦期待的协同程序实现,它将从这一点复原。咱们可能会将生成器视为循环中应用的一种非凡类型的协程和合作多任务处理。 在协程被开发之前,生成器被扩大,以便它们能够像 Python 程序中的协程一样应用。这须要大量的生成器技术常识和自定义任务调度程序的开发。这是通过更改生成器和引入“yield from”表达式实现的。 这些起初被弃用,取而代之的是古代的 async/await 表达式。 4. 协程与工作子例程和协程可能代表程序中的“工作”。然而,在 Python 中,有一个称为 asyncio.Task 对象的特定对象。 协程能够包装在 asyncio.Task 对象中并独立执行,而不是间接在协程中执行。 Task 对象提供异步执行协程的句柄。 Task:一个能够独立执行的包装协程。这容许包装的协程在后盾执行。调用协程能够继续执行指令而不是期待另一个协程。Task 不能独自存在,它必须包装一个协程。因而,Task 是协程,但协程不是工作。 5. 协程与线程协程比线程更轻量级。 Thread:与协程相比重量级Coroutine:与线程相比是轻量级的。协程被定义为一个函数。线程是由底层操作系统创立和治理的对象,在 Python 中示意为 threading.Thread 对象。 Thread:由操作系统治理,由 Python 对象示意。这意味着协程通常能够更快地创立和开始执行并且占用更少的内存。反之,线程的创立和启动速度比协程慢,占用的内存也更多。协程在一个线程内执行,因而一个线程能够执行多个协程。 6. 协程与过程协程比过程更轻量级。事实上,线程比过程更轻量级。过程是计算机程序。它可能有一个或多个线程。Python 过程实际上是 Python 解释器的一个独自实例。 过程与线程一样,由底层操作系统创立和治理,并由 multiprocessing.Process 对象示意。 Process:由操作系统治理,由 Python 对象示意。这意味着协程的创立和启动速度显著快于过程,并且占用的内存也少得多。协程只是一个非凡的函数,而过程是至多有一个线程的解释器实例。 ...

January 28, 2023 · 1 min · jiezi

关于程序员:Python异步-什么时候使用异步3

从狭义上讲,Asyncio 是新的、风行的、探讨宽泛的和令人兴奋的。然而,对于何时应该在我的项目中采纳它存在很多困惑。 咱们什么时候应该在 Python 中应用 asyncio? 1. 在 Python 中应用 Asyncio 的起因在 Python 我的项目中应用 asyncio 可能有 3 个起因: 应用 asyncio 以便在您的程序中采纳协程。应用 asyncio 以应用异步编程范例。应用 asyncio 以应用非阻塞 I/O。1.1. 应用协程咱们可能会抉择应用 asyncio,因为咱们要应用协程。咱们可能想要应用协程,因为咱们的程序中能够有比并发线程更多的并发协程。协程是另一个并发单元,就像线程和过程一样。 基于线程的并发由线程模块提供,并由底层操作系统反对。它实用于阻塞 I/O 工作,例如从文件、套接字和设施读取和写入。 基于过程的并发由 multiprocessing 模块提供,也由底层操作系统反对,如线程。它实用于不须要太多过程间通信的 CPU 绑定工作,例如计算工作。 协程是 Python 语言和运行时(规范解释器)提供的代替计划,并由 asyncio 模块进一步反对。它们实用于具备子过程和套接字的非阻塞 I/O,然而,阻塞 I/O 和 CPU 绑定工作能够在幕后应用线程和过程以模仿非阻塞形式应用。 最初一点是奥妙而要害的。尽管咱们能够抉择应用协同程序来实现它们引入 Python 的非阻塞性能,但实际上咱们能够将它们用于任何工作。如果咱们违心,任何应用线程或过程编写的程序都能够重写或应用协程编写。 线程和过程通过操作系统抉择哪些线程和过程应该运行、何时运行以及运行多长时间来实现多任务处理。操作在线程和过程之间疾速切换,挂起那些未运行的并复原那些被授予运行工夫的。这称为抢占式多任务处理。 Python 中的协程提供了另一种多任务处理类型,称为合作多任务处理。协程是能够挂起和复原的子例程(函数)。它由 await 表达式暂停,并在 await 表达式解析后复原。这容许协程通过设计进行单干,抉择如何以及何时暂停它们的执行。它是一种代替的、乏味的、弱小的并发办法,不同于基于线程和基于过程的并发。仅这一点就可能成为在我的项目中采纳它的理由。协程的另一个要害方面是它们是轻量级的。 它们比线程更轻量级。这意味着它们启动速度更快,应用的内存更少。实质上,协程是一种非凡类型的函数,而线程由 Python 对象示意,并与操作系统中的线程相关联,该对象必须与之交互。因而,咱们可能在一个 Python 程序中有数千个线程,但咱们很容易在一个线程中领有数万或数十万个协程。 咱们可能会抉择协程,因为它们具备可扩展性。 1.2. 应用异步编程咱们可能会抉择应用asyncio,因为咱们想在咱们的程序中应用异步编程。也就是说,咱们要开发一个应用异步编程范式的Python程序。异步意味着不同时,与同步或同时相同。在编程时,异步意味着申请动作,只管在申请时并未执行。它稍后执行。异步编程通常意味着全力以赴并围绕异步函数调用和工作的概念设计程序。尽管还有其余办法能够实现异步编程的元素,但 Python 中的残缺异步编程须要应用协程和 asyncio 模块。 咱们可能会抉择应用 asyncio,因为咱们想在咱们的程序中应用异步编程模块,这是一个有情理的理由。明确地说,这个起因与应用非阻塞 I/O 无关。异步编程能够独立于非阻塞 I/O 应用。正如咱们之前看到的,协程能够异步执行非阻塞 I/O,然而 asyncio 模块还提供了以异步形式执行阻塞 I/O 和 CPU 绑定工作的工具,通过线程在幕后模仿非阻塞和过程。 ...

January 24, 2023 · 2 min · jiezi

关于程序员:互联网寒冬袭来你属于哪一类人

这场互联网寒冬从前年下半年开始,至今依然没有消退的迹象,大家伙都深深地感触到了扑面而来的寒意。不过互联网曾经“蓬勃”倒退至今,也差不多到了高峰,在没有新的风口呈现之前,预计是会大浪淘沙,缓缓归于平静,行业反而会变得更好,而不是疯狂成长,恶性竞争。 有时候无聊,也会对当初的情况进行一些思考、演绎和总结,还是挺有意思的,明天分享进去,大家就看着乐呵乐呵就好。 首先,咱们先从业务的角度,分为两类:不稳固业务 和 稳固业务。 不稳固业务什么是不稳固业务,我的定义是随时会被裁掉的业务,或者是被裁掉危险很大的业务。 简略地说,基本上不赚钱的业务都是排在中下游的,随时都有可能被裁,而且往往老板又会施加十分大的业务压力,要求业务扭亏为盈,自力更生。认真想想,在环境好的时候都没有可能做到自负盈亏,在市场大环境惨淡,竞争强烈,人心思变的状态下,又谈何容易? 那咱们再看下处在不稳固业务下的开发们,也能够简略地分为两类:劣势者 和 劣势者。 劣势者在一个团队中,大家都晓得,有外围骨干,备份这些外围员工,这些人个别就是劣势者。 这类人最次要的特点就是在招聘市场中是占有优势的,他们有更好的我的项目经验,更高的职级,更优良的能力,不怕找不到好工作。 对于这类人,我再简略划分为以下 3 类: 蠢才大能,祸兮福所倚,对于十分有眼光,嗅觉敏锐,器重本身职业倒退的蠢才们,这场寒冬是他们的机会,他们会趁着这个机会在职业倒退路线上寻求更进一步。徐徐图之,有些人的指标是稳固,通过这场动荡,很多人对于稳固都有了从新的意识,置信聪明人会更加欠缺本人的职业/人生倒退布局,这类人寻求的是更加稳固的业务。尽在把握,最初一类人的指标是钱,这类人给我的感觉就是十分自信,自信当初的业务肯定会被裁,自信本人肯定可能拿到名额,自信本人肯定能找到一份称心的工作,感觉所有尽在把握,他们齐全不怕工夫和机会散失的危险。劣势者在一个团队中的排名中下游的人员属于这类,他们最次要的特点就是没有特地大的亮点我的项目能够撑持本人的面试,同时能力上也还没有成长欠缺起来。劣势者占大多数,个别都会比拟慌,也会比拟难堪,一边等着被裁拿大礼包,一边找工作,到处碰壁好不容易找到 offer 了,又在犹豫: 还没拿到大礼包呢,怎么办?当初的业务到底会不会被裁呀?总感觉会呀新的工作稳固吗,会不会又被裁?啥都想要,最终就有可能捡了芝麻丢了西瓜。如果没有想分明的话,不论最终做了什么抉择,肯定是会悔恨的,因为身边肯定能够看到失去更好后果的人,本人就肯定会在想如果当初... 稳固的业务比拟自信本身业务不会被裁,那将会更加被动,会有更多选择权了。 劣势者这类角色有进路,就不慌了,能够自由选择,要倒退还是钱?或者全都要!不称心我就苟着。我是有点艳羡这类人的,他们领有最多的抉择,叱咤风云呀。 劣势者我感觉,属于稳固业务的劣势者是最难的,因为对于他们来说,其实是不稳固的,不会裁业务,然而会做人员优化呀,这类角色的“可能”性太多了,所以他们是最不稳固的,绝对不稳固业务的劣势者来说,反而是稳固的,因为业务曾经“帮”他做了一半的抉择了。 这类角色的心田是解体的: 我都拿到好 offer 了,连忙裁我呀我想稳固,然而好放心被裁呀,怎么办,我要提前找工作备后路吧我想苟着,可是好羡慕身边的共事,我要不要也看看机会?工作越来越难找了,太难了...对于这类角色,我的倡议是连忙致力找更稳固更好的工作,越早越好,至于拿不拿失去大礼包就随缘好了。绝对于大礼包,工夫老本会更大。 最初尽管当初曾经是有点晚了,抉择也不多了。然而大家还是能够回过头来看这个事件的,跟我一样。 如果可能回到过来,在刚开始的时候,其实实质上来说就是个抉择的问题,然而整个环境都太凌乱,没有人可能晓得前面怎么倒退,会变成什么样,所以才导致咱们难以做出抉择。 当初回过头来看,要做这个抉择,最好的门路是: 看清当前状况,当初行业环境怎么?招聘环境怎么?我的业务稳固与否?认清本人,我属于哪一类人,劣势者还是劣势者?我的职业/人生倒退布局更新明确了吗?当下,我最须要什么?最想要什么?口头起来!怯懦的,动摇的,不悔的!欢送加我v【longyiyiyu】,进行无累赘沟通,我会 长期职业倒退布局领导近期工作重点交换职场解惑面试辅导也欢送关注公众号【潜龙在渊灬】,播种程序员职场相干教训、晋升工作效率和职场效力、结交更多人脉。

January 23, 2023 · 1 min · jiezi

关于程序员:快到-35-的大龄程序员

大家好,这是一篇快到 35 岁的“大龄”程序员的自我介绍,心愿可能借此意识更多同道者。 我叫黎清龙,广东人,2012年本科毕业,2014年研究生毕业,是浙江大学软件工程学院本硕连读(呸,就是不想考研抉择了保研)。第一份正式工作经验是在腾讯,CSIG 在线教育部,做前端开发,也是 IMWeb 团队的一员,先后做过腾讯课堂和企鹅辅导业务,2020年正式任命 leader,治理差不多10人左右的前端开发团队;2022年3月,因(cheng)为(xu)某(yuan)些(dou)原(zhi)因(dao),退出虾皮金融产品部,现负责生产贷业务+催收业务的前端开发和管理工作。 我的自我介绍完了,如果大家不想节约更多工夫深刻理解我的话,晓得以上信息曾经足够了,为了大家的脑细胞着想,提供给大家 3 个不必思考的快捷选项: 对我不感兴趣,能够左上角敞开页面(我能够对天发誓,这相对不是相亲贴);感觉能够交个敌人,给本人保留一个将来有惊喜的可能,能够关注我的公众号或者加我微信;还想听我唠唠嗑的,欢送持续看上来呀,肯定满足大家的好奇心。感激你可能持续看上来。我想了很久,怎么样能力不至于让我的自我介绍写成流水账,然而,当我想了更久的工夫之后,我发现,我想把这份流水账写进去更难,因为,很多的经验我都不记得了,我只能把我的记忆片段写下来,拼凑出我的职业生涯。好忘性不如烂笔头,我感觉本文我能够永远留存并继续迭代,直到我的职业生涯完结的时候,能够用来回顾我的人生,也不失一桩美事。我也举荐大家这样做。 我的前端之路的伊始我的第一份进入企业的工作是在2011年,大三实习,在杭州阿里,阿里妈妈广告部门(部门全称曾经不记得了),后盾开发,你没有看错,是的,我是后盾开发,那会儿我还不晓得前端,大学课程也没有一门是教前端的。 我对于阿里的印象,绝不是当初的"味儿"。我对阿里最大的印象还停留在当初那个时代,有三: 江湖派头,店小二文化,随性,直来直往,相互接受度十分高,我是十分喜爱这个文化的,过后阿里实习是不能领有花名的,这是我职业生涯最大的遗憾之一,我还很分明记得,过后我已经查过,如同还没有人取名曹操,不过也是我的胡思乱想,因为即便我转正,我也没有那个资格取这个花名。凋谢,真得十分凋谢,当我在新人入职欢送聚餐中,脱到只剩裤衩的时候,我置信我那会肯定是齐全了解了凋谢这个词了。尽管直到现在回顾起来,还会有点不适,然而,当经验了那次聚餐之后,隐隐中,我会潜意识地得感觉,如同本人没什么是不能够“坦诚相待”的。倒立文化,换个角度思考,我自认为我齐全做到了,当我换个角度思考我的职业的时候,我走上了前端之路。。。尽管在我拿到转正 offer 的时候,还是毅然决然抉择保研(其实是被父母逼的)并转前端,然而我还是感觉,我在阿里的大半年实习期间,是我整个开发生涯中成长最快的期间,在那里,我学到了太多太多,以至于到当初我的开发习惯还会保留过后的一些痕迹: 当我碰到须要服务运维的场景,我肯定是首选 bash 脚本,而后是 python,最初才是 js,根本不会是 js 的,因为没什么是前两者做不到的。定时工作,文件锁,离线计算,文本处理等等,到当初我还历历在目。记不清写了多少 Map Reduce 了,然而过后,我真得被 Hadoop 的设计原理给深深的吸引到了,原来,大数据处理&剖析,分布式计算和分布式文件系统有这么多的挑战,但它的解决方案又是这么的精简,直到现在,我依然深信,任何架构设计,肯定是精简的,当我跟他人探讨架构的时候,如果他讲不分明,或者表白非常复杂的时候,我就晓得,不是设计有问题,就是表白有问题,咱们还有更优的计划。天地良心,过后实习的时候,我真的是十分认真的做后盾开发的,过后我还啃下了那本大象书呢,当初想想也感觉不容易,当年我是真喜爱看书呀。架构设计十分“好玩”,在过后,阿里外部有十分多的技术分享,我经常去听我本人喜爱的分享,让我的技术视线失去了十分大的增长,比方: 中文的分词要比英文的分词要难很多,最终发现,自然语言解决不是我的菜;举荐零碎的后果是竞速的,过后真的有想入职百度,去学习搜索引擎的激动;秒杀的多重降级、动静降级,各种“砍砍砍”,十分有意思。在过后,我学到的一个最重要的常识是,任何架构设计都是就地取材的,不能按部就班。 在实习转正问难的时候,最初问我的将来布局的时候,我的答复更多是偏架构设计和 UI 相干,当初回想起来都会感觉搞笑,过后我一度认为是转正失败了,然而没想到阿里凋谢到这都给我发了 offer,真得很感谢我的老领导,但也感觉很对不起他们,因为我真的不想吞没在数据的陆地里,我更喜爱开发一些"看得着,摸失去"的货色,我会感觉做这个更有意思,所以,我抉择了前端。 一波三折的腾讯梦先说说为什么想去腾讯吧,因为我是广东人,父母都在深圳,都心愿我回深圳,过后深圳不必多说,大公司就腾讯了,所以,我在实习和毕业的抉择上始终都十分明确,就是深圳腾讯,然而我本人都没想到我回深圳是这么的崎岖。 研一找实习的时候,我第一次面试腾讯挂了,过后是电话面试,我记得是早上,很忽然接到了面试电话,而后忽然开始面试,我齐全没有筹备,很天然地就挂了,跟我同一个我的项目的做 web 服务的同学拿到腾讯的实习 offer 了,过后心理还有点不均衡,然而前面我也很快拿到新的 offer 了。 插一段题外话,过后我跟另外两个同学一起跟着导师外包我的项目,我的项目也挺有意思的,因为咱们是嵌入式方向的实验室,所以咱们做的是一个实时监控零碎,有个同学次要负责传感器和网络编程,另外一个同学次要负责 web 后盾服务,我负责前端页面(extjs),咱们的我的项目是给一家医院做冰柜的温度实时监控零碎,在冰柜中放入温度传感器,而后一直把冰柜的温度数据通过各个局域网网络节点传输器一路传到核心服务器中,而后核心服务负责存储并剖析数据,落库并返回数据到前端,展现实时监控页面并增加告警性能。整个零碎十分有意思,通过这个我的项目,我深深地感触到物联网的魅力,软硬件联合的威力。这还只是单向的,如果能够做到双向,再加上智能化,那根本就能够取代人的工作了,实际上,当初很多的无人XXX零碎,他们的实质都是这个,当初互联网环境这么差,哪天干不上来了,换个行业,做物联网+虚构+AI,做事实虚构,实业降级事业,也是大有可为的。 回归正题,在腾讯忽然面挂之后,我就开始认真温习,专门找前端的实习工作,而后很快就找到了网易的教育部门的前端开发 offer,这段经验我印象最粗浅的是过后那批前端的口试当中,我是最高分的,面试也没怎么问就拿到 offer 了,果然有口试就是好呀,妥妥我的强项。或者是因为我有这段经验,所以前面我才会被调配到腾讯做教育吧。。。 在网易,我做的是网易云课堂和网易公开课相干的前端工作,在网易的实习过程中,我的前端根底和实际不断加强,三剑客,前端组件库,前端根底库,模块化,构建,浏览器兼容解决等等,根底技术播种很多,然而大的方面上,没什么特地的播种,就像网易的公司文化一样,没什么特地的感触,至今都没留下什么。在网易,印象最深的两个点就是: 除了游戏,万般皆下品,次要靠情怀。其实这点跟在腾讯做教育也差不多;网易的伙食真的是互联网第一,不存在之一。研二找工作的时候,我钻研了腾讯的校招路演,发现有以下问题: 杭州算是最初一站那种,工夫很晚,到咱们这边黄花菜都凉了;杭州离上海很近,过去招聘的团队应该根本都是上海的;像我这样的杭州毕业生不去阿里想去腾讯的奇葩真得不多了。因而,我决定跑去上海加入校园招聘。当年校招我只面了百度跟腾讯,过后校园招聘都是对立口试,面试,我记得百度是去他们上海分公司外部面试的,面了 2 轮就到 hr 了,还能留下记忆的是过后 2 面面试官对我的阿里经验很感兴趣,问了十分多,我过后就懵了,你们不是招前端的么。 而后是腾讯的面试,在一家 5 星级酒店的房间面的,过后进去就问我,能不能承受 web 服务研发岗位,我过后第一反馈就是,你有无搞错呀!?然而机警如我,必定是立即答复能够承受的,尽管这是一个随时都能够被废除的万金油 api 岗位,然而它胜在可上可下,呸,是可前可后,啊呸,是可前端可后盾,必须难不倒我呀,而后就是很无聊的面试,问了一些简略的前端题,理解了一下实习我的项目,最初做了一道智力题就完结了,相比百度的面试,有点看不过去了。最初问了我填的意愿是深圳的岗位,问我服不服从调剂,我说只想看深圳岗位,让我一度认为我又挂了,不过最初还是顺利进到 hr 的房间。。。面试,轻易瞎聊,最初确认我只想回深圳,并示意能够给我争取调剂。 在回杭州的火车上,我晓得百度的 offer 根本稳了,不过是上海的,腾讯的 offer 还是心田忐忑,切实是腾讯的面试有点“搪塞”了,那会儿我都在思考怎么忽悠我爸妈先在上海工作2年再回深圳了。不过没过2天,就收到了腾讯的 offer,是深圳易迅的前端开发岗位,过后在上海招聘的 90% 都是易迅(腾讯收买)的招聘,也很感激过后帮我调剂的面试官跟 hr 了。兴奋的我在跟百度 hr 电话的时候就间接拒掉了百度 offer,当初回想起来,还真有点草率了。 ...

January 22, 2023 · 1 min · jiezi

关于程序员:一期每日一GO群分享flagviper协程池异常处理

1.11 flag库明天介绍一个库flag,命令行程序罕用,用来承受参数的。 var ( intflag int boolflag bool stringflag string)func init() { flag.IntVar(&intflag, "intflag", 0, "int flag value") flag.BoolVar(&boolflag, "boolflag", false, "bool flag value") flag.StringVar(&stringflag, "stringflag", "default", "string flag value")}func main() { flag.Parse() fmt.Println("int flag:", intflag) fmt.Println("bool flag:", boolflag) fmt.Println("string flag:", stringflag)}用法 ./main.exe -intflag 12 -boolflag 1 -stringflag test接管了三个参数,输入: int flag: 12bool flag: truestring flag: testinit函数里写了参数的默认值,参数输出帮忙。 作业自行钻研如何输入参数帮忙抢答boolflag的默认值是什么 1.12 viper库明天要介绍的是viper一个罕用的配置读取包。github.com/spf13/viper,它反对: 设置默认值从 JSON、TOML、YAML、HCL、envfile 和 Java 属性配置文件读取实时监控和从新读取配置文件(可选)从环境变量、命令行参数、缓冲区读取从近程配置零碎(etcd 或 Consul)读取,并察看变动显式配置值简略来说只有三步,指定配置文件,初始化,应用,大家下来本人理解。 宋跑跑:viper 好用 然而目前不反对环境变量数组解析。 ...

January 22, 2023 · 1 min · jiezi

关于程序员:一期Go群问答并发控制数据竞争错误与异常

每周更新Go技术交换群的群问答内容,有须要可发我Go加群探讨学习。 并发管制waitGroup.done()不是必须写在main办法中吗? 为什么我的协程没有胜利期待?熊:如果用了wait group,申请就间接卡住了,如果只有一个goroutine那和间接调用函数没有区别其实。你是想申请立即返回,而后其余数据稍后返回的话,用中间件比方kafka。或者用回调callback 谬误现场 谬误起因:没有能胜利期待goroutine执行完,done要放goroutine里,里面是wait。 参考用例 var wg sync.WaitGroupsList := []string{"a", "b"}wg.Add(len(sList))for _, d := range sList { go func() { defer wg.Done() fmt.Println(d) }() }wg.Wait()数据竞争如果不同的线程写同一个map的不同key内容是不是不必sync.Map了?会存在数据竞争吗?然而如果我make的时候提前指定容量呢?熊:会影响的,预计map中的hmap会影响到,有几率会在运行时报错 机器马:你在用之前没法确定会用哪个key啊,除非你再用构造体封装一层 熊:我想到两个方法,1是用这个,还有一个是弄个channel,如果数据用处不一样,弄成构造体channel,用一个goroutine来接管他们。独自用一个线程来承受数据,go这个货色就是个语言,怎么好用怎么来,尽管始终是在推channel,但只有实现需求。 sync.Map为什么没有len测长度办法?Mike: 看来有人也遇到这么问题,为杀map反对len(),而sync.Map不反对。有趣味的能够看看issue. 简略说官网认为 map 原本就不应该有length的实现。 机器马: 2017年社区就在吵要不要加个len办法了。个别syncmap都不会独自应用,而是封装到构造体里,而后再写一层办法,所以个别就会在这一层做count,用原子操作计数。 诘问:sync.Map 这个Range 办法有个返回值,是bool是用来返回是否range空map吗?range如何解决碰到到空的? 熊:这个bool是传入函数的返回值,调用完当前如果是Map是空的,实际上就什么也没做,不会给返回。外面给迭代,你传入的函数解决下k v的行了。没方法判断是否为空。 登陆验证咱们能够用UUID生成咱们的token,为什么还要用jwt呢(redis中存储token和用户信息对应关系)?Mike: 无状态 jwt不在服务端存储任何状态。RESTful API的准则之一是无状态,通过redis存储token和用户信息,违反了无状态准则。 Mike: JWT的长处: 可扩展性好 应用程序分布式部署的状况下,session 须要做多机数据共享,通常能够存在数据库或者redis外面。而jwt不须要。无状态 jwt不在服务端存储任何状态。RESTful API的准则之一是无状态,发出请求时,总会返回带有参数的响应,不会产生附加影响。用户的认证状态引入这种附加影响,这毁坏了这一准则。另外jwt的载荷中能够存储一些罕用信息,用于替换信息,无效地应用 JWT,能够升高服务器查询数据库的次数。Mike: 毛病:因为jwt的payload是应用base64编码的,并没有加密,因而jwt中不能存储敏感数据。而session的信息是存在服务端的,相对来说更平安。 熊:对于前端事实以后是哪个用户的问题,只须要后端把用户根本信息存cookie里就能够了。后端用token获取用户信息,把二者分来到。 熊:对于Mike所述的第一个长处,实际上也有弊病,因为必须期待token记录的工夫到期,jwt才会断定token过期,服务端无奈被动过期。也无奈做多平台挤出登陆,相似于QQ那样子。熊:gtoken就是存redis 此用户名已被占用: jwt个别还要再加密吧?我记得是有rsa熊:的确是要加密的 宋跑跑:签名加密? 此用户名已被占用: 难道不是吗? 不然token裸奔。 宋跑跑 (宋跑跑): 害 信息其实都能拿到了。 异样解决go你们在我的项目中都是怎么异样解决的呀,java是抛出自定义有业务异样而后全局异样捕捉?张朝胤:Golang不是if err=nil?全局try catch怎么解决? ...

January 22, 2023 · 1 min · jiezi

关于程序员:资深程序员在编程中有哪些特殊的习惯或方法

知乎上有一个问答:高级程序员在编程中有哪些非凡的习惯或办法? 我是一个有着 22 年编程教训的老程序员,谈不上高级,我来谈谈本人的三点心得。 肯定要有本人的代码库以前有程序员将周杰伦《双截棍》的歌词做了批改,改成了程序员版,其中有一句唱到: 一个编好的库函数,一用好多年,拷贝好带身边。同样,咱们程序员不可能保障每天都是编写全新的代码。如果咱们工作中编写代码时,可能稍稍注意一下代码的可重用性(reusability), 做到当天编写的代码,能够最大水平被未来的工作重用,或者把代码中能够重用的局部提取进去,编写成适宜本人重复应用的库函数,保留到只属于本人的代码仓库里。 这样与日俱增,本人的代码库内容越来越丰盛。 笔者在本人的公司接到新的开发工作时,第一件事就是到本人的代码库里查找有没有能够复制粘贴过去就能用的代码片段。 肯定要有本人的知识库好忘性不如烂笔头。 我 25 岁研究生毕业刚加入工作的时候,记忆力和高考巅峰期时所差无几。一转眼我曾经40岁了,脑子又动过一次大手术,当初记忆力是江河日下了。这种差劲的记忆力却并没有影响我的编程工作,起因就是我有本人的知识库。 每天我都会记录工作笔记,如果工作内容里有值得零碎总结并输入的货色,我会写成博客发表到技术社区。 我 16 年的编程生涯,总共写了 11966 篇笔记,这些笔记形成了我的知识库。 平时工作上的共事问我技术问题时,我常常能够间接从我这个知识库里找到相干文章,而后间接把文章链接发给共事,节俭了我不少工夫。 这其实也体现了工作笔记可重用性的重要性。 集体喜爱把本人的代码库和知识库,看作程序员的数字化资产。我在这篇文章里对程序员如何打造本人的数字化资产,助力本人的职场倒退有着具体的介绍: 一个 SAP 开发工程师的成长史 把握面向谷歌编程和面向 StackOverflow 编程的技巧置信很多程序员和我一样,每天破费工夫最多的编写代码自身,而是如何让本人编写的代码能依照本人冀望的形式去失常工作。 当程序执行出错,报出各种各样的谬误音讯时,除了拿着这些谬误音讯去问身边比本人更资深的共事之外,另一种能帮忙咱们摆脱困境的形式,就是在 Google 等搜索引擎里输出这些谬误音讯,而后查看搜寻后果里,是否有遇到同样问题的热心网友们,把本人的解决方案自私的分享进去。运气好的时候,也会搜寻和代码相干的权威网站,比方官网文档给出的问题阐明和解决方案。 能够毫不夸大的说,如果我工作中不能应用 Google 和 StackOverflow,那我可能早就被解雇无数次了——这些工具网站无数次将我从深陷 bug 泥潭的窘境中解救出来。 在 Google / StackOverflow 上获取本人遇到技术问题答案的能力,也是程序员剖析问题和解决问题能力的具体体现。

January 19, 2023 · 1 min · jiezi

关于程序员:2022-年终总结

2022 年终总结2022 纪事去年的制订的指标,实现了4项。 学习vue3.0理解JVM源码,将JVM运行流程弄明确。实现一个玩具级别操作系统纯熟应用c++学习spring boot 3.0刷算法题(500+)2022年基本上,算法题还差40题左右。单纯的再做简略题和中等题意义不大了。要保障不同的题型,并且减少艰难题的数量。除此之外,看了两本书,一本ddia(数据密集型设计),凤凰架构。这两本挺不错的。练习了vim。 2022 总结2022年算是比拟轻松的一年,下半年基本上都在劳动状态。更多的是对过来的一种思考。 技术上:7月份的时候,筹备搬家的时候,忽然发现5年的工夫外面,实体书还差一点,然而加上电子书,基本上看了六十几本。差不多一个月一本。除此之外,也写了很多玩具的我的项目。一直学习,一直的跳脱本人的舒服圈,挺累的。 职场上:刚毕业的时候,把所有想的都比较简单了。然而事实中,你会遇到各种各样的人和事件。很多的事件都想不明确,为什么会有这种人?为什么会有这种事?从最后的讨好型人格,变得自我和功利。听过一句话,你帮过的人不肯定帮你,帮过你的人肯定会再帮你。 生存上:重心始终都是放在编程下面,有的时候小长假也在写代码,所以在生活上其实疏忽了很多货色。衣着衣着,身上的衣服曾经好几年了,鞋如同没有几双了。再比如说身材治理,娱乐放松等等。 在往年搬家之前,对5年干了多少事件,我是没有一个量化的意识。当我停下来思考的时候,我才意识到,过来几年里,我把当成一个追赶者,不停的在学习,始终处于紧绷的状态。然而在很早之前我的技术比很多人都要强上一大截,无论是前端还是后端。之后我会从新正视我的技术能力,以及调整我之后的学习生存。 2023 瞻望之后应该不会每一年每一年的制订指标。我会把之前写的一些我的项目,解决一些问题,再从新重构一下。 学习以自我利益为导向,再思考其余问题。放弃陈腐事物的激情学习英语 (争取考一个雅思)持续学习linux源码 (网络模块,内核模块,内存模块,驱动模块)持续学习jvm源码(初始化,运行时(内存,字节码散发))算法1800+ (leetcode周赛4题)德语

January 19, 2023 · 1 min · jiezi

关于程序员:Python异步-什么是异步-2

狭义上,asyncio 是指应用协程在 Python 中实现异步编程的能力。 具体来说,它指的是两个因素: 在 Python 3.4 中将“asyncio”模块增加到 Python 规范库中。在 Python 3.5 中向 Python 语言增加了 async/await 表达式。模块和语言的变动独特促成了反对基于协程的并发、非阻塞 I/O 和异步编程的 Python 程序的开发。 让咱们认真看看 asyncio 的这两个方面,从语言的变动开始。 1. 异步反对Python 语言已更改为通过增加表达式和类型来适应 asyncio。更具体地说,它被更改为反对协程作为一流的概念。反过来,协程是 asyncio 程序中应用的并发单元。协程是一个能够挂起和复原的函数。 协程能够通过“async def”表达式定义。它能够承受参数并返回一个值,就像函数一样。 # define a coroutineasync def custom_coro(): # ...调用协程函数会创立一个协程对象,这是一个新的类。它不执行协程函数。 ...# create a coroutine objectcoro = custom_coro()协程能够通过 await 表达式执行另一个协程。这会暂停调用者并安顿指标执行。 ...# suspend and schedule the targetawait custom_coro()异步迭代器是产生可期待对象的迭代器。能够应用“async for”表达式遍历异步迭代器。 ...# traverse an asynchronous iteratorasync for item in async_iterator: print(item)这不会并行执行 for 循环。相同,执行 for 循环的调用协程将挂起并在外部期待迭代器产生的每个可期待对象。 ...

January 19, 2023 · 1 min · jiezi

关于程序员:要命我篡改了系统命令惊现事故竟要扣我年终奖Golangcobra

打工还是要打工的。。我最初也没收回去。 紧急解决当前,当初写复盘,大家随我看看我到底是在学习哪些内容。 (以上内容纯属虚构,如有雷同纯属巧合) 简介之前咱们讲过pflag和os.Args,当初说说cobra这个命令行框架。 Kubernetes、Hugo、etcd 这些出名我的项目都用cobra来做命令行程序。学起来! 对于作者spf13,这里多说两句。spf13 开源不少我的项目,而且他的开源我的项目品质都比拟高。置信应用过 vim 的都晓得spf13-vim,号称 vim 终极配置。能够一键配置,对于我这样的懒人来说相对是福音。 还有他的viper是一个残缺的配置解决方案。完满反对 JSON/TOML/YAML/HCL/envfile/Java properties 配置文件等格局,还有一些比拟实用的个性,如配置热更新、多查找目录、配置保留等。还有十分火的动态网站生成器hugo也是他的作品牛人就是牛人。 这个牛人 https://github.com/spf13疾速应用第三方库都须要先装置,后应用。上面命令装置了cobra生成器程序和 cobra 库: $ go get github.com/spf13/cobra/cobraPS: 如果呈现了golang.org/x/text库找不到之类的谬误,须要手动从 GitHub 上下载该库,再执行下面的装置命令。 当初要举的例子是让咱们的程序调子命令时会透传到git上,用git version举例。目录构造如下(手动建的): get-started/ cmd/ root.go version.go utils/ helper.go main.gocmd指标是子命令列表,这里有一个version命令。root.go先卖个关子,大家不要理他。main.go是主程序。helper是这里应用到的工具类。go.mod文件我省略了。上面的代码文件我就省略import "github.com/spf13/cobra"了,大家晓得就行,version.go文件: var versionCmd = &cobra.Command{ Use: "version", Short: "version subcommand show git version info.", Run: func(cmd *cobra.Command, args []string) { output, err := utils.ExecuteCommand("git", "version", args...) if err != nil { utils.Error(cmd, args, err) } fmt.Fprint(os.Stdout, output) },}func init() { rootCmd.AddCommand(versionCmd)}几个参数含意是子命令名称、子命令短提醒、子命令调用的办法init()里把子命令加到主命令中去。你会有纳闷rootCmd是哪来的吗?实际上咱们须要一个根节点,把其余命令加进来。如下是root.go文件。 ...

January 17, 2023 · 3 min · jiezi

关于程序员:我的2022

前言时光飞逝,光阴荏苒,2022人不知;鬼不觉已完结。回忆这一年里产生的事件,有辛酸不易,有困难重重,也有雨过天晴。简略总结下我的2022,无论过往如何终将逝去,愿咱们在2023越来越好! 一、放弃身体健康衰弱好比数字1,家庭、孩子、事业、金钱都是0。失去了1,前面的0便毫无意义。1做好了,前面的0越多越富裕。情理大家都懂,但就是很难做好。 年初定下每周静止3次的指标,当互联网裁员潮+35岁中年危机同时来袭,真的齐全提不起静止的兴致,作息也变得不太法则。通过多学习、多总结、多积淀,加上工作上获得了肯定的问题,本人的焦虑也就缓缓消散了,逐渐开始每周打羽毛球等静止。 年底新冠疫情政策突发放开,病毒传播速度极快,我意识的所有人简直在一个月内都“羊过”。尽管专家说99%都是轻症,但新闻上重症也不少,为了防止我下班把病毒带回家,便始终跟家人离开住,直到家里所有人都羊了,就我一人还没羊,我大略就是那个“天选打工人”吧。 二、工作节奏放缓2022年的工作节奏相比2021进一步放缓,大多能在22点前上班了(2020年是0点后、2021年是23点后)。工作节奏放缓最次要有3个起因:一是产品越来越稳固,救火工夫大幅缩小;二是因为新冠疫情导致很多工厂复工;三是因为冬季低温干旱,全国各个省份都在履行限电,很多工厂也因而受影响。 三、我的项目开花结果2020年基于水泥行业从0到1孵化了工业大脑智能优化控制系统AICS。 2021年继续打磨AICS产品外围能力,并从点到面积淀了不少行业解决方案。 2022年重点做规模化复制,咱们做的事件被央视点赞,我所负责的水泥行业也终于开花结果。 1、央视点赞!阿里云奔赴工业生产“第一线” 2、再减碳6万余吨!牵手华新水泥,打造低碳制作新零碎 四、继续学习成长我的项目中遇到了K8s多节点集群资源调度不平衡问题,深刻学习K8s调度相干的源码。 工作中遇到大数据处理场景,整体相熟了大数据技术栈,并对ClickHouse做了性能剖析。 工作中为晋升资源利用率和调度性能,学习了Hadoop和Flink的资源和计算调度外围架构。 加入了软考高级职称,利用业余时间备考了一个月,比拟惋惜的是上午的选择题差2分通过。 2022全年公发了6篇公众号,具体如下: 1、我的2021 2、初识工业互联网 3、深入浅出PID算法 4、解决k8s调度不平衡问题 5、记一次 ClickHouse 性能测试 6、2022下半年《软考-零碎架构设计师》备考教训分享 尽管没有实现月更指标,但相比2021年的2篇,也算是有亿点提高,2023年再接再厉。 五、2023年指标衰弱:每天睡眠7小时,每周尽量静止,体重管制在125左右。 工作:继续打磨产品,实现技术架构演进,帮忙团队实现更大的业务指标。 成长:通过软考高级,公众号争取月更,进步英语水平,尝试录制短视频。 PS:关注公众号【劼哥舍】,咱们一起学习成长。

January 17, 2023 · 1 min · jiezi

关于程序员:个人博客目录在此

Java 概念 & 原理JMM 内存模型JVM 虚拟机构造JVM GC 算法JVM GC 简述 Java 根底 & 源码根底数据类型Error & ExceptionHashMap 与红黑树ConcurrentHashMapJava的援用ThreadPoolExecutorBlockingQueueFactoryBeanSynchronizedJava 泛型Java Proxy & CGLIB并发读写 CopyOnWriteThreadLocal线程的状态线程的切换 sleep & yield & joinJava 共享锁 & 排他锁 & 读写锁锁相干 wait & notify & notifyAll锁相干 await & signal & signalAlliterator & for动静年龄准则Java 集合时间复杂度线程池的状态Java 只有值传递TruncateCompleteFuture 小结volatile 关键字AQS 偏心锁 非偏心锁 编程思维面向对象,面向组件,面向服务Restful分布式系统零碎架构的变迁数据库的切分CAP分布式事务 & 2PC & 3PC分布式事务 & TCC幂等缓存击穿 & 雪崩自旋锁 & 适应性自旋锁设计模式乐观锁 乐观锁 数据库MySql 共享锁 排他锁MySql 行级锁 表级锁数据库的隔离级别InnoDB 记录行构造InnoDB 页构造MySql 索引简述MySql ExplainMyBatis 配置详解Redis RDB & AOFMySql 十分用语法笔记MySql MVCC ...

January 16, 2023 · 1 min · jiezi

关于程序员:5个关键词回顾2022年个推技术实践

作为一家数据智能服务商,2022年每日互动(个推)在为开发者和行业客户提供优质服务的同时,一直砥砺翻新,追赶技术前沿。个推还继续参加开发者生态建设,踊跃总结、分享本身技术实战经验,面向行业输入翻新成绩。 5大关键词,带大家一起回顾过去一年个推在技术创新方面的“鲸彩”时刻,冀望和宽广开发者、大数据从业者携手登程,共创“兔”飞猛“鲸”的2023年! 【治数】为帮忙企业造就数字化人才,晋升数据治理能力,2022年个推重磅推出了大数据主题系列直播课——个推TechDay“治数训练营”,分享本身的数据治理和数据智能行业实战经验,助力行业数字化过程一直减速。个推TechDay“治数训练营”汇聚多位优良大数据架构师的实操方法论,凝固泛滥数据开发和数据分析工程师的一线实践经验,受到大数据从业者以及开发者群体的宽泛关注。 回顾个推TechDay“治数训练营”干货课程第➀期:数据仓库与维度建模第➁期:基于Flink的实时数仓建设第➂期:数据指标体系设计与开发实战第➃期:标签体系建设实际 【用数】2022年个推推出DiOS数据智能操作系统,帮忙企业更加不便、快捷地治理和应用数据,萃取数据价值,升华业务效率。DiOS不仅为行业倒退提速,还无效赋能社会公共治理,助力改善交通、晋升政务服务效率、更好地服务民生。 【增能】以“数据让产业更智能”为使命,2022年个推继续拓展数据智能在垂直行业的利用,推动数字经济和产业倒退。在互联网畛域,个推重磅推出“个推用户经营平台”,帮忙APP构建精细化经营体系、实现数据驱动的高质量增长。在品牌营销畛域,个推进一步深入“数据积淀——>消费者人群洞察——>指标人群类似扩量——>广告投放优化——>营销成果归因”的全链路数据营销服务闭环,助力品牌广告主降级营销价值。在公共服务畛域,个推打造“智慧高速解决方案”,摸索数据在高速投建管养、疏堵救济、智慧化服务区等场景的利用,促成人、车、路线高效协同;此外,个推还推出“数智绿波”产品,帮忙交警部门智能调控绿波带,晋升城市道路运行效率,让市民出行更通顺。 回顾2022年个推行业数智化实际➀个推用户经营平台,助力APP精细化经营➁个推全链路数据营销服务闭环,助力品牌降级营销价值➂个推智慧高速解决方案,促成人、车、路线高效协同➃个推打造“数智绿波”产品,让市民出行更舒畅 【平安】2022年,“个保法”施行一周年,数据安全与利用成为每一个大数据从业者所关注的话题。针对“个保法”出台施行后,品牌营销行业面临的数据孤岛、数据合作等方面的难题,个推通过大数据联结计算的翻新模式、“无磁盘计算”等前沿技术,无力突破了行业各方对数据安全的顾虑,使生态多方可能高效地合作在一起,在平安、合规的前提下独特开掘数据价值。 理解个推数据安全利用翻新模式➀个推首倡大数据联结计算模式➁个推摸索无磁盘计算技术➂个推谈“个保法”下品牌数字化营销新思路 【降本】通过总结、梳理本身的“大数据降本提效”实战经验,2022年个推策动打造了业内首本《大数据降本提效实战手册》,为行业搭档的数字化降级之路提供架构设计、计划施行和技术落地等方面的无益参考,也给企业通过施展数据和技术的力量,以在“后疫情时代”实现降本提效及高质量倒退带来借鉴思路。 回顾2022年,“东数西算”工程全面启动,“元宇宙”概念大火,Web3.0为咱们描述下一代互联网蓝图……个推也紧跟科技潮流趋势,对新技术、新零碎、新理念进行了钻研解读。 和个推一起回顾2022年技术潮流热点➀个推详解Android13个性及适配➁个推CTO趣谈元宇宙➂个推漫谈Web3.0 2022年悄然离去,2023年刚刚启程。新的一年,个推还将继续深耕数据智能,摸索技术前沿,与宽广开发者以及行业客户凋谢交换,独特成长。2023年,祝大家前“兔”似锦,“鲸”彩不停!

January 16, 2023 · 1 min · jiezi

关于程序员:9个Python-内置装饰器-显著优化代码

装璜器是利用“Python 之禅”哲学的最佳 Python 个性。装璜器能够帮忙您编写更少、更简略的代码来实现简单的逻辑并在任何中央重用它。 更重要的是,有许多很棒的内置 Python 装璜器使咱们的生存变得更加轻松,因为咱们只需应用一行代码就能够为现有的函数或类增加简单的性能。 让咱们看看我精心筛选的 9 个装璜器,本文将向您展现 Python 是如许优雅。 1. @lru_cache应用缓存技巧减速 Python 函数的最简略办法是应用 @lru_cache 装璜器。 这个装璜器能够用来缓存一个函数的后果,这样后续调用雷同参数的函数就不会再执行了。它对于计算量大或应用雷同参数频繁调用的函数特地有用。 让咱们看一个直观的例子: import timedef fibonacci(n): if n < 2: return n return fibonacci(n - 1) + fibonacci(n - 2)start_time = time.perf_counter()print(fibonacci(30))end_time = time.perf_counter()print(f"The execution time: {end_time - start_time:.8f} seconds")# The execution time: 0.18129450 seconds下面的程序应用 Python 函数计算第 N 个斐波那契数。计算fibonacci(30)的时候很耗时,很多后面的Fibonacci数在递归过程中会计算很屡次。 当初,让咱们应用@lru_cache 装璜器来减速它: from functools import lru_cacheimport time@lru_cache(maxsize=None)def fibonacci(n): if n < 2: return n return fibonacci(n - 1) + fibonacci(n - 2)start_time = time.perf_counter()print(fibonacci(30))end_time = time.perf_counter()print(f"The execution time: {end_time - start_time:.8f} seconds")# The execution time: 0.00002990 seconds如上代码所示,应用@lru_cache装璜器后,咱们能够在0.00002990秒内失去雷同的后果,比之前的0.18129450秒快了很多。 ...

January 16, 2023 · 3 min · jiezi

关于程序员:Windows-7-将彻底退出历史舞台-因俄罗斯开发者拿不到钱-MSI-Afterburner-开发停滞思否周刊

40S新闻速递Windows 7 将彻底退出历史舞台 Android 13 测实用新性能:可仅针对特定利用录屏因俄罗斯开发者拿不到钱 MSI Afterburner 开发停滞GitHub Enterprise Server 存在受权不当破绽Safari 迎来 20 岁生日微软在本周二释出 Windows 8.1 的最初一次安全更新黑莓将在软件开发中反对 RustPython 新提案:使全局解释器锁成为可选项Linux 4.9 正式 EOLChrome 109 公布,最初一个反对 Windows 7/8 的版本Linux Kernel 6.2 的第 3 个候选版本公布行业资讯Windows 7 将彻底退出历史舞台 作为一代经典 Windows 7 行将退出历史舞台,按计划,1 月 10 日,Windows 7 操作系统将完结 ESU(付费内涵扩大反对),也就是对于企业用户来说,即使是想再掏钱,微软也不会再下发安全补丁了。Windows 7 公布于 2009 年 10 月,2015 年完结支流反对,2020 年完结内涵反对,随后微软上线了 ESU,容许通过付费的形式订阅安全补丁。另外,Windows 10 也将于 2025 年 1 月 14 日完结反对。 Android 13 测实用新性能:可仅针对特定利用录屏始终以来,因为 Android 零碎录屏时会录制包含告诉、桌面、工作列表在内的所有内容,用户的信息隐衷都是一个难以解决的问题。但近日,Android 13 QPR2 测试的一项新性能,或者可能解决这一难题。在该版本中,谷歌退出了一个新的性能,用于抉择一个特定的应用程序进行屏幕录制,而不是录制整个屏幕。该性能会在一个相似分享页面的对话框中,显示最近几个利用的实时信息,并容许用户抉择其余更多利用。 因俄罗斯开发者拿不到钱 MSI Afterburner 开发停滞微星的显卡超频工具 MSI Afterburner 被用于显卡的监控、超频和降压。但它的开发者本月早些时候在该利用的 Guru3D 探讨论坛上示意微星曾经近一年工夫没有付钱,其开发已处于半放弃状态。MSI Afterburner 由俄罗斯开发者 Alexey 'Unwinder' Nicolaychuk 开发,他还开发了 RivaTuner Statistics Server——它是 MSI Afterburner 根底软件层的一部分。Unwinder 在论坛上示意,因为和平和政治起因,我的项目半放弃了,微星曾经近一年工夫没有履行软件的许可协定——即领取开发费用。他说,过来 11 个月 MSI Afterburner 的开发还在持续,但他个人感觉是在一个微星公司不须要的货色上浪费时间,如果有闲暇工夫他可能会持续反对它,但为了领取账单他须要做其它事件。RivaTuner Statistics Server 的开发还会继续下去。微星证实,因为俄罗斯对乌克兰的和平,它进行了付款。但对于是否将放弃 MSI Afterburner,微星有不同观点,它无意持续反对该工具,正在钻研解决方案。 ...

January 15, 2023 · 2 min · jiezi

关于程序员:手把手教你快速搞定4个职场写作场景

【写作能力晋升】系列文章: 为什么倡议你肯定要学会写作? 手把手教你疾速搞定 4 个职场写作场景 5 种搭建⽂章架构的⽅法”收费赠送! 一、前言Hello,我是小木箱,明天次要分享的内容是: 写作小白须要防止的五个写作误区和灵魂五问。 二、 误区⼀: 对写作成果有过⾼的预期写作小白容易犯的第一个误区是: 对写作成果有过高的预期。比方有的人刚开始动笔写作没多久,就想写出浏览量 1w+的技术文章,分分钟战胜鸿洋、三太子敖丙和JavaGuide等。 或者感觉本人能够写出比他们更高的水准。写不进去,就开始自我狐疑,狐疑本人不是写作这块料,为啥会这样呢? <p align=center><img width="500" src="https://p1-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/7237c51a893043f4a672f8fad0aa0457~tplv-k3u1fbpfcp-watermark.image?" alt="image.png" /></p> 因为咱们疏忽了一个很重要的问题: 写作是一个游刃有余的过程。 有的人大学毕业后没写过货色,写作早已成为一项陌生的技能,想立即写好文章根本是不可能的。 <p align=center><img width="500" src="https://p9-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/e3b16f0bbc2f46b298ed84faac5d68a0~tplv-k3u1fbpfcp-watermark.image?" alt="image.png" /></p> 即便 "写作高手" 长时间不下笔写作也会陌生。如果普通人写作功底差且不足练习,那么写得差是必然的。 如果一件必然失败的事赋予了很高的冀望,那么自信心就会被打击的,对于写作老手来说: 缺乏自信是一个很危险的事件,因为很容易就会放弃。 <p align=center><img width="500" src="https://p9-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/f91127709a0744d18b81b5633b22c6e7~tplv-k3u1fbpfcp-watermark.image?" alt="image.png" /></p> 其次,认知偏差让咱们在无形之中晋升本人的预期。比方刚开始写作时,会看一些三太子敖丙的故事,心里会想他是如何可能将公众号从零做到 30 万粉丝问题的。 这样的问题多了,会不盲目地进步本人的预期,总感觉本人写着应该要达到三太子敖丙、鸿洋和JavaGuide这样的程度,便给本人设定的过高的心理预期。 起初,我明确: 向高手学习时,不仅要看他们当初获得了哪些问题,而且要看他们在没失去回报时付出过哪些致力,其实看不到的事实往往是问题的假相。 写作小白常常会犯的认知偏差是只看后果不看过程,与其跟你心中那些高手比,不如向他们学习,他们的经验比咱们设想的要崎岖。 以上是咱们说写作小白常常陷入的第一个误区: 急于求成,对写作成果有过高的冀望。 三、 误区二: 三天打⻥两天晒⽹写作小白容易犯的第二个误区: 三天打鱼,两天晒网。写作小白容易常常有这样的想法: "明天在状态,明天就多写点,今天不在状态,那我就不写了,回去多写一些补回来" 。 <p align=center><img width="500" src="https://p6-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/69b5c6907fa44472ba770ae143268d62~tplv-k3u1fbpfcp-watermark.image?" alt="image.png" /></p> 想法看似正当调整本人的进度,实质上是不自律的体现。长期上来,人肯定会犯懒,如果不在状态的时候越来越多,在状态的时候越来越少,那么均匀下来写的内容会变少。 只有越写越多,能力进步写作能力,如果越写越少,那么就会放弃写作。由此可见进步写作依赖长期的训练。 最好晋升写作灵感办法是: 每天都要写一点货色。包含但不限于: 长文章、写一段话、搭建思维框架、一段看书评,甚至发长文的朋友圈。 <p align=center><img width="500" src="https://p6-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/852a578509704664a81ff812eb0eeb7c~tplv-k3u1fbpfcp-watermark.image?" alt="image.png" /></p> 初学者千万别 "三天打鱼,两天晒网" ,如果是这种心态,那么晋升写作能力就很艰难。因为高手都是持续性的自律,普通人总是间歇性自律。 <p align=center><img width="500" src="https://p1-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/888992d1ec0842d3b729602d9e42e813~tplv-k3u1fbpfcp-watermark.image?" alt="image.png" /></p> 写作是一场马拉松,继续稳固的输入才是硬道理,写作小白容易犯的第二个误区 -- 三天打鱼,两天晒网。 四、误区三: 只违心写⽂章,不违心改⽂章写作小白容易犯的第三个误区是: 只违心写文章,而不违心改文章。 ...

January 13, 2023 · 2 min · jiezi

关于程序员:启动优化基础论浅析-Android-启动优化

【小木箱成长营】启动优化系列文章(排期中): 启动优化 · 工具论 · 启动优化常见的六种工具(待更~) 启动优化 · 方法论 · 这样做启动优化时长升高 70%(待更~) 启动优化 · 实战论 · 手把手教你破解启动优化十大难题(待更~) 一、引言Hello,我是小木箱,欢送来到小木箱成长营系列教程,明天将分享启动优化·根底论·浅析 Android 启动优化。小木箱从四个维度将 Android 启动优化根底论解释分明。 本文次要说了四局部内容,第一局部内容是启动根底,第二局部内容是启动优化价值,第三局部内容是启动优化业务痛点,第四局部内容是总结与瞻望。 启动优化业务痛点次要分为五个方面,第一个方面是业务问题背景,第二个方面是防劣化机制建设,第三个方面是优化思路,第四个方面是调度框架,第五个方面是业务框架。 如果学完小木箱成长营启动优化的根底论、工具论、方法论和实战论,那么任何人做启动优化都能够拿到后果。 二、启动根底咱们先进入第二局部内容启动根底,启动根底有六个关键点能够和大家分享一下,第一个关键点是启动过程。第二个关键点是启动形式。第三个关键点是启动流程。第四个关键点是归因剖析。第五个关键点是优化方向。第六个关键点是启动指标。 <p align=center><img src="https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/53dc606aa12c4a63bf3d04fd1d7c7ce0~tplv-k3u1fbpfcp-zoom-1.image" alt="" /></p> 2.1 启动过程<p align=center><img src="https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/689a7cb02849412ba2581a7b09c34333~tplv-k3u1fbpfcp-zoom-1.image" alt="" /></p> 首先,小木箱说说第一个关键点启动过程,依照业务是否可间接操作分为 SystemServer 和 App Process 。 其职责划分如下: SystemServer 负责利用的启动流程调度、过程的创立和治理、窗口的创立和治理(StartingWindow 和 AppWindow) 等 利用过程被 SystemServer 创立后,进行一系列的过程初始化、组件初始化(Activity、Service、ContentProvider、Broadcast)、主界面的构建、内容填充等 2.2 启动形式接着,小木箱说说第二个关键点启动形式,Android 利用的启动形式大略分为热启动、冷启动、温启动三种,对于冷启动、热启动、温启动三者启动形式比照能够参考上面的流程图学习。 <p align=center><img src="https://p1-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/14d07fcc54cc49bab1cde4f309f1372c~tplv-k3u1fbpfcp-watermark.image?" alt="image.png" /></p> 2.1.1 冷启动冷启动具备耗时最多,衡量标准的特色,冷启动常见的场景是 APP 首次启动或 APP 被齐全杀死,冷启动、热启动和温启动中冷启动 CPU 工夫开销最大。启动流程简化如下,后文会具体介绍。 <p align=center> <img src="https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/3993b475bd944f869626c3fbd55c3b8d~tplv-k3u1fbpfcp-zoom-1.image" alt="" /> </p> 2.1.2 温启动当启动利用时,后盾已有该利用的过程,然而 Activity 可能因为内存不足被回收。这样零碎会从已有的过程中来启动这个 Activity,这个启动形式叫温启动。 ...

January 13, 2023 · 14 min · jiezi

关于程序员:Hackathon特别策划-72小时灵感冲刺创意就该这么玩

2023 年 1 月 9 日至 12 日,LigaAI 团队全员出逃:放下迭代,暂缓需要,处处充斥着「能够摸鱼➕卷死他们」的矛盾又欢畅的气味。职场和近程的搭档们无一不在热烈探讨、踊跃组队、抢占会议室、搜刮零食饮料…… 是什么让矜持内敛的技术共事,化身资源掠夺者?是什么使专一认真的研发团队无心迭代? 当然是 LigaAI 第二届「黑客马拉松」! 与首届「黑客马拉松」中天马行空的有限创意相比,第二届 LigaAI Hackathon 围绕主题 「We Code For Developers」 开展,选题更聚焦,创意更求实。 咱们心愿 LigaAI 的创造者们可能跳出外部视角,临时抛下待办列表中的一亩三分地,去思考「新一代智能研发合作平台」的真正价值和更多状态,去摸索、实现那些创意满分的无穷脑洞。 整体搭档依据创意和趣味,自成 8 队,在缓和的 72 小时中,沉迷式体验思维碰撞、灵感发明、摸索发现的魅力。往年的 Hacking Time,又留下了哪些乏味的、精彩的记忆时刻? 01 一声令下,伙计们冲啊炽热的技术狂欢,从你争我抢的「会议室争霸赛」开始。业务纯熟的大佬们,早在人不知;鬼不觉间,就将电脑、显示器、键盘、增高架等办公老友「瞬移」进了会议室。 零距离的面对面沟通,能力保障 72 小时的严密又高效的合作。 反馈慢的搭档们就只能在公共职场「分布式」合作了。要晓得,会议室这种罕见资源,就算是公司老大来了,咱们也是相对不会让进去的! 周一上午 10 点,LigaAI Hackathon 2022 正式揭幕。前一秒还在相互调侃的大佬们,霎时进入了缓和而专一的较量状态。 8 支队伍围绕各自的我的项目创意,开展强烈的探讨和剖析,性能拆分、UI 设计、字段剖析…… 层层拆解与构建后,72 小时的挑战工作也逐步具象化。 02 风暴挑战,也要吃好喝好有了清晰明确的产品指标,那就撸起袖子,甩开膀子,加油干! 工夫紧迫,为了让 Demo 呈现出最好的成果,大佬们花样百出,只为抢占「多」一些宝贵时间。 嘴巴忙碌,耳听八方,让我看看谁须要帮忙?睡午觉?不须要!快多实现几个性能啦!设计师太忙了?没关系,后端成员主动补位 :)团队缺测试?前端、测试,我能够自在切换~ 有难题,一起探讨;有压力,独特分担。为实现独特的指标,大家废寝忘食,各显身手。 有的人光明磊落地「卷」,有的人暗中偷摸上强度,但所有人都在迎难而上,动摇地、致力地将那些承载着创意和态度的想法落地。 或者,这就是「团队」带给咱们的,凝聚的力量。 Hackathon 无疑是一场脑力与膂力的双重拉力赛,没有短缺的能量补给可不行。 ...

January 13, 2023 · 1 min · jiezi

关于程序员:数据分析通俗易懂假设检验

导读大多数对于假设检验的教程都是从先验散布假如开始,列出一些定义和公式,而后间接利用它们来解决问题。然而,在本教程中,咱们将从第一准则中学习。这将是一个示例驱动的教程,咱们从一个根本示例开始,逐渐理解假设检验的内容。 1. 选哪个骰子? 设想一下,您背后有两个无奈辨别的骰子。您随机抉择一个骰子并扔掉它。在察看它落在哪张面上之后,您能确定您抉择了哪个骰子吗? 骰子的概率分布如下图所示: Die 1:P(X=x) = 1/6 if x = {1, 2, 3, 4, 5, 6}Die 2:P(X=x) = 1/4 if x = {1, 2} = 1/8 if x = {3, 4, 5, 6}在二元假设检验问题中,咱们通常会面临两个咱们称之为假如的抉择,咱们必须决定是抉择一个还是另一个。 假如由 H 和 H 示意,别离称为原假如和备择假如。在假设检验中,咱们回绝或承受零假如。 在咱们的示例中,骰子 1 和骰子 2 别离是原假如和备择假如。承受或回绝零假如的决定取决于察看的散布。 所以咱们能够说假设检验的指标是画一个边界,把察看空间分成两个区域:回绝区域和承受区域。 如果落在回绝区域,咱们回绝原假如,否则咱们承受它。当初,决策边界不会是完满的,咱们会犯错误。例如,骰子 1 可能落在骰子 1 或 2 上,而咱们将其误认为是骰子 2;但产生这种状况的可能性较小。咱们将在下一节中学习如何计算错误概率。 咱们如何确定决策边界?有一种简略无效的办法称为似然比测验,咱们接下来将探讨。 2. 似然比测验你必须首先意识到察看的散布取决于假如。上面我依据两个假如绘制了示例中的散布: 当初,P(X=x;H) 和 P(X=x;H) 别离示意在假如 H 和 H 下察看的可能性。它们的比率通知咱们,对于不同的察看,一个假如比另一个假如正确的可能性有多大。 这个比率称为似然比,用 L(X) 示意。 L(X) 是依赖于察看值 x 的随机变量。 ...

January 13, 2023 · 3 min · jiezi

关于程序员:什么是希尔排序

本文首发自「慕课网」,想理解更多IT干货内容,程序员圈内热闻,欢送关注! 作者| 慕课网精英讲师 JdreamZhang 希尔排序(Shell Sort),是计算机科学与技术畛域中较为简单的一种排序算法。 希尔排序是插入排序的一种,有时候也被称为 “放大增量排序”。它是插入排序的改进版,与插入排序的不同之处在于,希尔排序会优先比拟间隔较远的元素。希尔排序是依照其设计者希尔(Donald Shell)的名字命名而来,并于 1959 年公布出来。 希尔排序过程在介绍完希尔排序之后,咱们一起来看一下希尔排序的实现步骤具体是什么样的吧。这里咱们假如待排序的序列为 [9,2,11,7,12,5],咱们依照从小到大的序列进行排序。1.1 算法步骤步骤 1:抉择一个增量序列 k1,k2, … km,其中 k1>k2>…km=1,即增量序列大小顺次减小,并且最初一个增量序列大小为 1。 步骤 2:依照增量序列的个数 m,对整个待排序序列进行 m 趟排序。 步骤 3:每一趟排序,依据对应的增量 ki,须要将待排序的序列分成对应长度的子序列,别离在子序列下面进行间接插入排序。当且仅当增量序列为 1 时,整个序列作为一个整体解决。 其实,下面的步骤 1 和 步骤 2 都是在排序之前进行的解决,抉择对应的增量。下面的 步骤 3 每执行一次,就相当于是进行了一次插入排序,只是每次都会抉择一个增量,将整个待排序序列依照增量进行划分,而后在对应增量下面进行插入排序。接下来,让咱们用下面的待排序数字队列 [9,2,11,7,12,5] 进行整个算法步骤的排序演示工作。 1.2 算法演示依照 2.1 节的排序步骤,咱们须要先抉择对应的希尔排序中的增量值,依照一般性的准则,咱们能够将增量依照待排序的序列长度顺次整除 2,直到增量为 1 进行,失去对应的增量。如下: 6/2 = 3, 3/2 = 1 //顺次取得增量值3,1,除法取整代码块1接着,咱们调用 2.1 中的步骤 2, 步骤 3,依照增量值的取法,顺次进行对应序列的插入排序,首先咱们取增量值为 3,对应排序示例如下: [9,2,11,7,12,5] --> [9,7],[2,12],[11,5] //增量取3,整个待排序序列依照增量为3进行分组,分成3组,顺次排序[9,7],[2,12],[11,5] --> [7,9],[2,12],[5,11] //对应增量地位进行排序[7,9],[2,12],[5,11] --> [7,2,5,9,12,11] //实现第一次的对应增量的排序过程代码块123Tips: 希尔排序过程中会每次抉择一个增量值,而后将待排序列表依照增量值进行分组,对应的分组外部进行插入排序。 ...

January 13, 2023 · 2 min · jiezi

关于程序员:golang实现一个linux命令ls命令命令行工具构建

心愿2023能够听到这些话: 祝贺你失去了这份工作祝贺你的倡议被采纳了祝贺你被录取了祝贺你的考试顺利通过了祝贺你上岸了祝贺你升职了祝贺你加薪了祝贺你体检后果一切正常在这篇文章上面许个愿吧! ls 命令要实现ls,首先先咱们温习一下ls命令。 ls不加任何参数,示意查问当前目录下的文件/文件夹ls前面加上门路,列出所有,不蕴含暗藏文件/文件夹ls -a列出所有,包含以.结尾的暗藏文件此命令还有很多性能,这一节的重点是命令行水平的编写,就实现下面四个。 os.Args 读取参数定义如下,一个数组。该数组长度由参数个数决定,第一个参数为程序自身,前面为参数列表。 var Args []string比方ls -l,Args=["ls","-l"],咱们当初实现ls+目录,或者缺省目录时默认当前目录代码如下。 func main() { targetDirPath := "./" if len(os.Args) > 1 { targetDirPath = os.Args[1] } if dirList, err := ioutil.ReadDir(targetDirPath); err == nil { for _, dirInfo := range dirList { fmt.Print(dirInfo.Name() + " ") } } else { fmt.Println(err.Error()) }}应用 os.Agrs 来获取传入程序的参数应用 ioutil.ReadDir 读取目录,将返回值[] FileInfo遍历,输入目录/文件信息将遇到的error输入到 终端输入 $ go build -o ls main.go$ ./ls main.go folder ls$ ./ls folderfile1 file2看,咱们曾经简略的实现了。但咱们会发现,要应用-结尾的参数时,用os.Args这个还须要手写更多简单逻辑去判断输出的到底是门路,还是其余参数,于是下一个包退场了。 ...

January 12, 2023 · 2 min · jiezi

关于程序员:什么是选择排序

本文首发自「慕课网」,想理解更多IT干货内容,程序员圈内热闻,欢送关注! 作者| 慕课网精英讲师 JdreamZhang 抉择排序(Select Sort),是计算机科学与技术畛域中较为简单的一种排序算法。假如咱们依照从小到大的程序进行排序。抉择排序会首先从待排序序列中抉择一个最小的元素放入排序好的序列中,而后顺次在从未排序好的序列中抉择最小的元素,直到最初须要抉择的待排序序列中只有一个元素,只须要将这个元素放在最初地位,就实现了整个排序过程。抉择排序的算法名称的由来就是因为在排序的过程中,依照排序规定(升序或者降序),顺次从待排序的序列中抉择出须要排列的元素。越小或者越大的元素会先抉择进去,直至实现整个排序。1. 抉择排序过程在介绍完抉择排序之后,咱们一起来看一下抉择排序的实现步骤具体是什么样的吧。 这里咱们假如待排序的序列为 [9,2,11,7,12,5],咱们依照从小到大的序列进行排序。1.1 算法步骤步骤 1:在待排序的序列中找到最小的元素,将最小元素与排序序列中首位元素替换地位;伪代码实现如下://待排序的序列记为A,寻找最小元素的伪代码如下:min = A[0]for(int i=1;i<A.length;i++){ if(A[i] < min){ min = A[i]}}代码块1234567步骤 2:从残余的未排序序列中,持续找出一个最小元素,将最小元素与排序好的序列的下一个地位进行替换;步骤 3:反复步骤 2 的工作,直至排序实现。其实,抉择排序次要是靠步骤 2 的反复执行,他会每次把最小的元素先抉择进去,而后放在排序好的序列的尾部。接下来,让咱们用下面的待排序数字序列 [9,2,11,7,12,5] 进行整个算法步骤的排序演示工作。1.2 算法演示依照 2.1 节的排序步骤,首先咱们会找出排序数字序列 [9,2,11,7,12,5] 中的最小元素 2,将 2 看作是排序好的元素,放在排序好的序列首位,如下:[9,2,11,7,12,5] --> [2,9,11,7,12,5] //找出待排序序列中最小元素2,放在首位,所以与9替换了地位代码块1接着,步骤 2,步骤 3 的形容,咱们反复进行最小元素的抉择工作,整个过程如下:[2,9,11,7,12,5] --> [2,5,11,7,12,9] //找出[9,11,7,12,5]中最小元素5,而后与9替换地位[2,5,11,7,12,9] --> [2,5,7,11,12,9] //找出[11,7,12,9]中最小元素7,而后与11替换地位[2,5,7,11,12,9] --> [2,5,7,9,12,11] //找出[11,12,9]中最小元素9,而后与11替换地位[2,5,7,9,12,11] --> [2,5,7,9,11,12] //找出[12,11]中最小元素11,而后与12替换地位[2,5,7,9,11,12] --> [2,5,7,9,11,12] //最初一个元素12,曾经在排序好的地位上,排序实现代码块12345 步骤 2 会顺次从待排序的序列中抉择一个最小的元素进去,而后将最小元素与排序好的序列的下一个地位的元素进行调换。反复整个 步骤 2,直至最初待排序序列只剩下一个元素,最初一个元素曾经排序好,阐明整个排序过程完结。Tips: 步骤 2 中每次执行抉择一个最小的元素时,都会在未排序序列的外部进行一次比拟筛选,记录下最小元素的地位,当遍历实现整个待排序序列之后,就能够确定最小元素的地位,将最小元素与已排序好序列的下一个元素进行地位调换,就实现了一个抉择最小元素的过程。从下面的示例能够看出,其实整个抉择排序的过程,每次都会去在未排序序列的外部进行一次抉择,找出最小的元素,将未排序序列中最小元素放在排序好的序列的下一地位。反复执行这个过程,就能够实现排序。2. Java 代码实现在阐明抉择排序的整个过程之后,接下来,咱们看看如何用 Java 代码实现抉择排序算法。import java.util.Arrays; public class SelectSort { public static void main(String[] args) { //初始化须要排序的数组 int array[] = {9, 2, 11, 7, 12, 5}; //顺次进行抉择排序,每次找出最小的元素,放入待排序的序列中 for(int i=0;i<array.length;i++){ //记录最小元素min和最小元素的数组下标索引minIndex int min = array[i]; int minIndex = i; //在未排序的序列中找出最小的元素和对应数组中的地位 for(int j=i+1;j<array.length;j++){ if(array[j] < min){ min = array[j]; minIndex = j; } } //替换地位 int temp = array[i]; array[i] = array[minIndex]; array[minIndex] = temp; } //打印出排序好的序列 System.out.println(Arrays.toString(array));}}代码块12345678910111213141516171819202122232425262728293031323334运行后果如下:[2, 5, 7, 9, 11, 12]代码块1代码中的第 7 行初始化一个须要排序的数组,前面依照从小到大的排序规定,实现了数组的排序。第 10 行是外层 for 循环,一直地反复抉择排序工作。第 17 行是内层循环,一直地实现每一次 “抉择 “,在未排序的序列中找出最小的元素和对应数组中的地位。第 24 至第 27 行实现了将未排序好的序列中的最小元素与须要排序的地位的元素进行替换的性能。第 31 行打印出排序好的数组。3. 小结本篇文章次要给大家介绍了抉择排序算法,须要大家相熟抉择排序的算法流程,晓得抉择排序算法的实现思路,能够本人用代码实现抉择排序算法。心愿大家能够比拟一下不同排序算法的实现思路,本人多总结思考。 ...

January 12, 2023 · 1 min · jiezi

关于程序员:Python-什么是异步编程-1

异步编程是一种不会阻塞的编程范式。相同,申请和函数调用会在将来某个工夫以某种形式在后盾收回和执行。这使调用者有工夫执行其余流动,并在后果可用或调用者感兴趣时稍后解决收回的调用的后果。 1. 异步工作异步意味着不同时,与同步或同时相同。在编程时,异步意味着申请动作,只管在申请时并未执行。它稍后执行。这将收回进行函数调用的申请,而不会期待调用实现。咱们能够抉择稍后查看函数调用的状态或后果。 异步函数调用:申请函数在某个工夫以某种形式被调用,容许调用者复原并执行其余流动。函数调用将以某种形式在某个工夫在后盾产生,程序能够执行其余工作或响应其余事件。这是要害。咱们无法控制申请的解决形式或工夫,只是咱们心愿在程序执行其余操作时解决它。收回异步函数调用通常会产生一些申请句柄,调用者能够应用该句柄来查看调用状态或获取后果。这通常被称为"将来"。异步函数调用的句柄,容许查看调用状态和检索后果。 2. 异步编程收回异步工作并进行异步函数调用称为异步编程。异步编程次要用于非阻塞 I/O,例如从与其余过程或其余零碎的套接字连贯读取和写入。非阻塞 I/O 是一种在申请读取和写入的状况下执行 I/O 的形式,只管它是异步执行的。调用者不须要期待操作实现再返回。读取和写入操作以某种形式执行(例如,由底层操作系统或基于其构建的零碎),并且操作和/或数据的状态稍后由调用者检索,一旦可用,或当调用者筹备好时。 因而,咱们能够看到非阻塞 I/O 与异步编程的关系。实际上,咱们通过异步编程来应用非阻塞I/O,或者通过异步编程实现非阻塞I/O。非阻塞 I/O 与异步编程的联合是如此广泛,以至于它通常被简称为异步 I/O。 接下来,让咱们考虑一下 Python 中的异步编程反对。 3. Python 中的异步编程从狭义上讲,Python 中的异步编程是指发出请求而不是阻塞期待它们实现。咱们能够通过多种形式在 Python 中实现异步编程,只管有一些与 Python 并发性相干。 3.1. asyncio第一个例子是 asyncio 模块。该模块应用 async/await 语法和带套接字和子过程的非阻塞 I/O 间接提供异步编程环境。 它是应用在事件循环中运行的协程实现的,事件循环自身在单个线程中运行。更宽泛地说,Python 提供了能够异步执行工作的线程和过程。 例如,一个线程能够启动第二个线程来执行函数调用并复原其余流动。操作系统将在某个工夫安顿并执行第二个线程,而第一个线程可能会或可能不会手动查看工作的状态。 更具体地说,Python 在 ThreadPoolExecutor 和 ProcessPoolExeuctor 类中提供了基于执行器的线程池和过程池。这些类应用雷同的接口并通过返回 Future 对象的 submit() 办法反对异步工作。 3.2. multiprocessingmultiprocessing 模块还提供了应用 Pool 和 ThreadPool 类中的过程和线程的工作池,ThreadPoolExecutor 和 ProcessPoolExeuctor 类的前身。 这些类的性能是依据工作人员异步执行工作来形容的。它们显式地提供了用于执行工作的每种办法的同步(阻塞)和异步(非阻塞)版本。 例如,能够通过 apply() 办法同步或通过 apply_async() 办法异步收回一次性函数调用。 欢送Star -> 学习目录 本文由mdnice多平台公布 ...

January 12, 2023 · 1 min · jiezi

关于程序员:缺乏长线思考是扼杀工程师前途的屠刀

不足长线思考是扼杀工程师前途的屠刀。 死局工作几年后,最容易陷入一个隐形的死局,开发只关注实现需求,运维只关注部署、故障。待到七八年,肯定会呈现后继无力。被代替,早晚而已。 我置信很多领导都讲过积淀方法论,成为畛域达人,很多敌人都认为是不给高绩效的托词,有画饼的嫌疑,一开始我也不了解,我一个无产阶级的社会主义青年,你给我讲方法论? 我置信所有的技术随着年限的加长,都能够积淀本人的方法论,只不过咱们疲于应酬日常工作,很少被动思考这些货色罢了。成长门路我周五加入共事的婚礼,新意识了一些敌人,忽然发现有不少人多少都和我有些交加。我和共事一起去的,他工作有九年也就和我差个三年。 他之前在网上对某畛域深入研究过,写了一些通俗易懂的文章《大话ceph》,网上有很多援用,在云行业的圈子里小有名气。所以一下子就被认出来了,把我这条菜狗艳羡得流口水。 所以这两天我思考这个问题颇多感悟,开掘了一下我本人的职业成长门路,从新关上了一扇大门,毫不夸大的说只有按我的最新布局来,将来稳固的倒退,美妙的前途是板上钉钉的事。 你有没有对你的前途有过布局,还是仍然在忙忙碌碌?有没有始终呆在一家公司到当初还没有找到适合的畛域?或者跳来跳去,一回头看见一地鸡毛? 开车看路,停车劳动,那么多岔路口,有多少是被迫抉择,有多少选对选错。 分享之道我周边有很多敌人,在本人畛域深入研究,在网上写博客,开源沉闷,面试简直免试,无往不利,水涨船高。我做Go语言交换群,做Go语言分享,也是想让大家通过输入来达到疾速学习的目标。 最好是能在网上发文章,缓缓的建设本人的集体id好处多多。 总结一下 方法论,是解决某一类或者说某一畛域难题积淀进去的一系列解决方案,它是可复用实际过可调整的,是公司违心花钱买的教训,是跳槽涨薪的重要加成工具。 技术深度和名气,是能人所不能,不须要拼膂力,而是拼教训的一种能力,小公司违心买你的过往经验光环,大公司光环,名人光环。而所有公司都违心买技术深度,来壮大团队本身。 后话 每日一Go和分享会都整得热火朝天,心愿大家都能有一个好的将来。 本文由mdnice多平台公布

January 11, 2023 · 1 min · jiezi

关于程序员:Golang时间处理容易踩坑小心损失百万

简介在各个语言之中都有工夫类型的解决,因为这个地球是圆的(我好像在讲废话),有多个时区,每个时区的工夫不一样,在程序中有必要存在一种形式,或者说一种类型存储工夫,还能够通过一系列的办法转换成不同国家的工夫。 上问提到了工夫、时区,还有一个概念为两个工夫之间的差值,比方小熊每次能够保持1个小时(锤炼),1个小时这种工夫形容词就是工夫距离。 这就是三种工夫解决的类型。 类型Time、Location、Duration 工夫、时区、工夫距离。它们都在time包外面。 Time工夫类型 程序中应应用 Time 类型值来保留和传递工夫,一个构造体,准确到纳秒。外面的变量都是公有的用不到,先不去管他。 type Time struct { sec int64 //秒 nsec int32 //纳秒 loc *Location //时区}一个Time类型值能够被多个go程同时应用。因为它是 time.Time 类型,而不是 指针*time.Time 类型。工夫须要初始化:IsZero 办法提供了测验工夫是否是显式初始化。时区类型作为Time构造体中的一个字段,标记这个工夫以后是哪个时区。Duration  工夫距离,两个工夫之间的差值,以纳秒为单位,最长 290 年,作为常识即可。 type Duration int64时区咱们在应用time.Time类型个别都是Local工夫,也就是本地工夫,当初就是中国工夫。 // 本地工夫(如果是在中国,获取的是东八区工夫) curLocalTime := time.Now() // UTC工夫 curUTCTime := time.Now().UTC()time 包提供了 Location (也就是时区)的两个实例:Local 和 UTC。 Local 代表以后零碎本地时区;UTC 代表通用协调工夫,也就是零时区。time 包默认(为显示提供时区)应用 Local 时区。平时应用的都是 Local 工夫,数据库存储的时候要留神,个别 orm 框架会主动实现这个。默认就是Local中国工夫! 问题:时区这个怎么设置?传字符串进去吗? curLocalTime := time.Now() //这是localcurUtcTime := curLocalTime.In(time.UTC) //这是UTC时区特地容易出错,Time 咱们应用都是本地工夫,然而!坑来了! 小心有坑timeStr := "2022-01-13 22:32:17" utcTimeObj, err := time.Parse("2006-01-02 15:04:05", timeStr) if err == nil { fmt.Println(utcTimeObj, utcTimeObj.Unix()) }你猜猜会输入什么?返回的居然是UTC工夫2022-01-13 22:32:17 +0000 UTC。这个常常有人出错。解析字符串时,都以协调时UTC工夫为准。 ...

January 10, 2023 · 3 min · jiezi

关于程序员:GitHub上标星79K的LeetCode算法小抄开放下载了

在大厂面试中咱们不可避免的会考到算法,为什么大厂肯定要考查算法呢?因为它蕴含了太多的逻辑思维,能够考查你思考问题的逻辑和解决问题的能力;这一点也是面试官比拟看重的,因为它能够反映出你的后劲,我已经听阿里一位资深面试官这样讲过:当一个人逻辑思维和能力不错的状况下,你还会放心业余的业务知识方面他不行或者学不会吗?”管中窥豹,算法的重要性我想大家都应该明确了。 个别,面试官出的面试题都是从题库里抽出来的,很少有本人出新题的(当然,算法口试过程除外)。所以,只有咱们刷题刷的足够多,就总有概率遇到原题。当然,咱们也能够押题,毕竟,一些高频率的题目总是有代表性的。给面试的小伙伴总结了一份文档,本文档目前能够手把手带你解决 110 道 LeetCode 算法问题,而且在不断更新,全副基于 LeetCode 的题⽬,涵盖了所有题型和技巧。 文档分为四局部:动静布局系列、数据结构系列、算法思维系列、高频面试系列 废话不多说来看看目录: 因为文章篇幅问题,以下只展现局部内容,须要残缺文档查问学习的小伙伴【间接点击此处】即可收费获取!动静布局系列具体来说,动静布局的⼀般流程就是三步:暴⼒的递归解法 -> 带备忘录的递归解法 -> 迭代的动静布局解法。 就思考流程来说,就分为⼀下⼏步:找到状态和抉择 -> 明确 dp 数组/函数的定义 -> 寻找状态之间的关系。 这就是思维模式的框架,本章都会依照以上的模式来解决问题,辅助读者养成这种模式思维,有了方向遇到问题就不会抓瞎,足以解决⼀般的动静布局问题。 最长公共子序列 动静布局之四键键盘 数据结构系列这⼀章次要是⼀些非凡的数据结构设计,⽐如枯燥栈解决 Next GreaterNumber,枯燥队列解决滑动窗⼝问题;还有常⽤数据结构的操作,⽐如链表、树、⼆叉堆。 ⼆叉堆详解实现优先级队列 疾速计算齐全⼆叉树的节点 算法思维系列本章蕴含⼀些常⽤的算法技巧,⽐如前缀和、回溯思维、位操作、双指针、如何正确书写⼆分查找等等。 回溯算法秒杀数独问题 区间交加问题 高频面试系列

January 10, 2023 · 1 min · jiezi

关于程序员:每日互动个推荣获InfoQ-2022年度最佳生态建设奖

1月5日,主题为“微光成炬 破晓而出”的2022 InfoQ极客传媒合作伙伴年度盛典召开。会上,2022中国技术力量年度榜单评比后果颁布,数据智能服务商每日互动(个推)荣获“2022年度最佳生态建设奖”。个推以技术为驱动,一直进行产品翻新,积极参与开发者生态建设,继续为互联网、品牌营销、智慧交通等行业客户提供业余的数据智能产品和解决方案。 在开发者服务畛域,2022年个推联合开发者需要,重磅推出了“个推用户经营平台”,帮忙电商、出行、资讯、影音、游戏等App客户构建用户精细化经营体系,实现高效率增长。此外,个推音讯推送业务进一步反对海内推送、光荣推送、小程序推送,助力开发者与用户连贯更高效。 2022年,个推还首提DiOS数据智能操作系统,面向行业客户,输入数据治理能力,帮忙企业更加不便和快捷地治理多源数据,萃取数据价值,升华业务效率。DiOS不仅为行业倒退提速,还无效赋能社会公共治理,助力改善交通、晋升政务服务效率、更好地服务民生。 作为数据智能行业的维护者和推动者,个推一直摸索平安计算、联邦学习等前沿技术,推动数据安全利用和数据产业翻新。2022年,个推首倡“大数据联结计算模式”,无力突破了行业各方对数据安全的顾虑,使生态多方可能高效地合作在一起,在平安、合规的前提下独特开掘数据价值。目前,大数据联结计算模式曾经在智慧交通、品牌营销等畛域落地利用,并获得显著功效。 个推还面向行业输入本身技术实际和翻新成绩,继续和全国各地的开发者、经营人员、技术爱好者开展深刻交换。2022年,个推重磅公布《DiOS产品白皮书》《APP音讯推送白皮书》《APP用户精细化经营实战手册》及业内首本《大数据降本提效实战手册》,面向行业零碎输入常识积淀,助推产业搭档打造数据因素时代外围竞争力。“集众智者,事无不成;聚合力者,业无不兴”。2023年曾经到来,个推也心愿在新的一年里可能和宽广开发者、行业客户继续凋谢交换,携手推动开发者生态和数据智能行业倒退!

January 9, 2023 · 1 min · jiezi

关于程序员:去无方向的信-写给无所事事的闲杂人等

你将取得你好,我是悦创。 官网订阅:https://bornforthis.cn/letter/ 我筹备在我的公众号上增加一个不一样的专栏,继续更新技术是初衷,当初 Java 继续更新了 21篇还会持续。概率论我也写了 20篇,为了辅助学计算机的读者们,看看公众号粉丝什么时候冲破4k吧。 接下来,我略微为这个专栏做个介绍。 如果你不订阅,你能够取得一些空闲工夫如果你订阅了不看,你能够取得“认为买过了就是看过了”的幻觉如果你订阅了但没看完,你能够取得生命中又一段有始无终的经验如果你订阅了且看完了……我也不确定你能播种些什么,我只是感觉你应该不会满载而归前言「在这」对,就是这在当初这个时代,想正经思维是个挺须要能源的事儿,因为这事儿看上去“挺没必要”的。思维很弱小,弱小到在网上学学、翻一翻豆瓣,看一些摘要,再加上一个美图秀秀就足够称霸敌人圈儿了。 但如果你忽然想晋升思维了,不论是因为什么吧,反正就是你忽然想了,你就会遇到很多很多问题,从最开始的基本操作,到之后的不晓得看什么内容……如果能更深刻,你还会在晋升思维这么一件莫名其妙的事儿上遇到瓶颈。 当初的人,工作曾经够让你烦心的了,然而因为你发现思维有足够的重要性,所以你还得抽时间抽精力抽本人的好情绪来冲破在这件“看似无用之事”上的瓶颈。 图什么呢? 如果你忽然想晋升“档次”,如果你足够致力,我置信你肯定晓得本人图什么。 我在晋升思维的过程中遇到过很多问题,我本人吭哧吭哧地解决了很多,但又一直会有新的问题冒出头来,须要去学,须要去练,须要去想……而后,在我稍有教训后,会被很多人问问题,我得一遍一遍不停地答复不停地答复,我发现,大家正在趟的泥泞,就是我已经跋涉过的路。 我发现,大家正在趟的泥泞,就是我已经跋涉过的路。所以,就有了这个专栏。 这个专栏当然没有方向,不然怎么会叫《悦创来信·去无方向的信》,不过跟你以往所看不一样的是,每一封信,有时是莫名延长、爆发进去的,毫无法则、打算可言,而这次是教训和观点,十分个人化的教训和观点……但这或者是最无聊的了,我这次对教学没有趣味,反而是在教学之外,我想聊的货色很多,即使是在聊教学的时候。 我晓得,有些语句很矛盾,也很奇怪。但......你不能否定的是:这就是人。这个专栏是一个整体,不会零打碎敲,后面会不停地预报前面,前面会不停地回顾后面,没有明确的节点能够分出大的章节来; 或者...... 或者,我也不会给你留预报,在某一瞬间就会迸发出的一封信到你背后,看不看在你。 我会以年去划分汇合,因为没有方向,所以真正的方向还须要自行去寻找~ 心愿,在某一个节点,我的信会对当下的你有所启迪、有所期待......也有可能:没用。 这个专栏十分任性,十分个人化,每一个毛孔里都漫散着“偏激”和“果断”的气味; 你能够评论,你能够探讨,你能够攻打,评论上面等你留言。因为,你的想法,是这篇文章为你带来的。但我不肯定会做出回答,毕竟:我与你只是萍水相逢,你也无需付费,不喜爱就划走吧。如同你能够不须要我,我也同样不须要你。记录都是本人的~ 这个专栏叫《悦创来信·去无方向的信》,他的副标题叫“这是一个不成体统的启发信”,“不成体统”表明了这个专栏的气质,而“去无方向”,表白出了我目前对思维、成长、将来、准则等等这件事儿的淡淡的哀伤……我很想晓得,如果我真能写完 99 封信,第 99 封信我会写点儿什么。

January 8, 2023 · 1 min · jiezi

关于程序员:2022-全球程序员薪酬报告-苹果多款产品电池修理费将涨价-Facebook吹哨人-推特必须开源|思否周刊

40S新闻速递Facebook“吹哨人”喊话马斯克:推特必须开源苹果多款产品电池修理费将跌价,涨幅最高 480 元因 IE11,Mozilla 解冻局部用户代理字符串Apache Kylin 存在配置可控导致的命令注入破绽微软将 ChatGPT 技术整合到 Bing 中,以挑战谷歌qBittorrent 新版的色彩引发批评2022 寰球程序员薪酬报告:字节在榜,上海薪资近 9 万美元Google 想要 RISC-V 成为 Android 的 T1 级反对架构LineageOS 20 公布Debian 移除 Python 2Kotlin 1.8.0 公布行业资讯Facebook“吹哨人”喊话马斯克:推特必须开源因举报 Facebook 成名的 Frances Haugen 这两天在一档电视节目中公开喊话马斯克:如果马斯克心愿推特成为一个公共广场,那他应该将其算法开源。她进一步解释,开源算法能够作为一项证实,让马斯克取得更多帮忙,从商业角度看,也更有利可图。马斯克此前就宣称,要让推特成为一个数字城市广场,让大家自在探讨人类将来至关重要的议题。他还始终发文,宣扬推特才是真正的“自在”、“公开”。不过在“开源”问题上,马斯克显得相当激进。12 月初,zdnet 一篇内容就曝光了马斯克不再对公司一些开源我的项目进行反对。在大裁员中,少数从事开源工作的技术人员也已来到。 苹果多款产品电池修理费将跌价,涨幅最高 480 元苹果最近上调了大部分产品的电池服务费价格。具体来说,iPhone 14 之前的所有 iPhone 机型,保外电池服务费用将减少 169 元。以 iPhone 13 为例,目前官网显示预估电池修理服务费用为 519 元,3 月 1 日后,保外费用将变为 688 元。除手机外,所有 MacBook Air 机型的保外电池服务费用将减少 290 元,所有 Macbook 和 MacBook Pro 机型的保外电池服务费用减少金额为 480 元。iPad相干服务费用也有上调。 因 IE11,Mozilla 解冻局部用户代理字符串两周前,用户向 Mozilla 报告了一个用户代理字符串(UA string)引发的网站兼容性问题。UA string 始于 1990 年代,网站能够利用这一数据调整性能和性能,或屏蔽过期的浏览器。行将公布的 Firefox 110 的 UA string 是 Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:110.0) Gecko/20100101 Firefox/110,用户报告它导致了 bestbuy.com 显示错误信息,宣称不反对该浏览器,它倡议用户下载最新版本的 Chrome、Firefox 或 Microsoft Edge。考察发现,起因是 IE11 的 UA string——Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; AS; rv:11.0) like Gecko。Firefox 110 的 UA string 蕴含了 rv:11,因而被网站辨认为它不再反对的 IE11。Mozilla 的解决办法是解冻版本号,Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:109.0) Gecko/20100101 Firefox/110。 ...

January 8, 2023 · 2 min · jiezi

关于程序员:Serverless轻松实现WEB页面与应用交互玩转活动运营

当今挪动利用日益丰盛,利用里的内容更新愈发高频。如果仍旧依附手机的原生页面来hold这些变动会比拟艰难,岂但开发者须要继续提供新版本去更新页面,用户也须要一直地更新利用版本方可获取最新的内容。这种情况下,在利用中嵌套WEB页面取得了泛滥开发者的青眼,成为解决问题的首选形式。 HUAWEI AppGallery Connect提供的Serverless服务能够帮您快捷部署WEB网页,WEB页面数据与原生利用的连贯,助力开发者每天将不同的页面与内容出现在用户眼前。 Serverless服务具体是如何实现WEB页面和原生利用的连贯呢?上面举个栗子吧。 电商利用突飞猛进,商家常常会推出目不暇接的促销流动,对不同品类进行重点推广。某电商利用举办一个品牌馆的流动,畛域内的各大支流品牌都参加此次流动。基于此,电商平台须要提供一个对立格调的WEB展现框架,同时为每个品牌设立一个WEB页面,来展现品牌介绍以及促销流动的详情。 上述诉求,通过Serverless服务可轻松实现: 应用云函数,实现不同品牌的页面内容散发逻辑。 应用云数据库和云存储,用于保留页面的内容数据,以及此我的项目利用所需的数据。 应用云托管,将此流动的WEB网页托管云上。 以后端页面将用户抉择的品牌作为入参传递给云函数,云函数对接云数据库和云存储,通过此入参获取页面内容相干的数据和资源,并对立调度散发到托管的WEB网页上出现。 其中云函数和前端页面的实现尤为要害。  云函数局部以java语言为例,咱们须要构建一个一般的Maven框架的Java工程。按云函数的规范框架,咱们创立一个入口函数,函数的其中一个入参为JSONObject类型的变量,用于实现函数在被调用时可通过此变量获取用户抉择的品牌名字。此外,在云函数中集成云数据库的Server SDK,能够实现函数对接云数据库查问对应品牌的所有数据。在筛选数据的时候您能够通过相似如下的语句指定品牌来实现:CloudDBZoneQuery<goods> query = CloudDBZoneQuery.where(goods.class).equalTo("brand", brand);数据查问胜利后,通过入口函数的返回,实现云函数回传数据到前端页面。按云函数编写标准,入口函数的返回值需为JSON模式,抉择云函数自带的CanonicalHttpTriggerResponse类。  前端页面局部通过集成云函数的Web JS SDK,并在函数中创立HTTP触发器,来实现云函数的触发逻辑。以后端页面触发函数时,须要将函数所需的入参通过申请发送给函数。按接口标准,需将所有参数写成Json键值模式,带入到触发函数的办法中。以传入品牌名称为例,传入的参数相似如下的构造:{ “brand” : Huawei}前端页面触发函数接口调用胜利后,您能够对调用办法设置监听回调,回调中即可获取到函数的返回,即在函数中查问到的此品牌所有数据,最终将这些数据填充展现在页面框架上。 依照上述步骤,“电商品牌馆”的流动即可轻松实现! 而除了WEB页面的高效部署,面对开发效率低、运维老本高、资源节约等窘境,Serverless认证服务、云函数、云数据库、云存储以及云托管服务,其跨平台、上线快、成本低、免运维的个性,让您不用关怀云侧资源的治理和运维,仅需聚焦业务翻新及业务逻辑的实现,无效进步利用开发效率。 更有Serverless模板,助您疾速部署和集成抽奖、游戏排行榜、短URL生成、图片尺寸调整等产品性能,降本增效快人一步。

January 6, 2023 · 1 min · jiezi

关于程序员:autotest-万级并发全链路自动化性能压测实践

指标开发人员5分钟上手压测,30分钟纯熟。惯例性能压测自动化,常态化;零开发,零测试投入;1分钟自动化生成报告,疾速定位问题!针对场景(经营流动)性能压测自动化,整体压测效力晋升10倍。缩小1名业余压测人员投入!计划依照五个维度打造研发管理体系思考和布局,依照本身场景,思考自研全链路压测工具;自身工具开发难度不高,我的项目速度快,投入周期短;同时也长期解决问题,灵便适配,能无效达成指标;  lmc-autotest BSF全链路压测工具开源地址:https://gitee.com/chejiangyi/...基于BSF根底框架构建全链路压测框架,从框架层面进行流量录制(也能够从浏览器自定义录制),从工具层面进行流量回放,进行性能压测,主动输入压测报告,主动进行全链路性能验收,从而晋升测试效力,领导网站性能优化。 全链路压测架构设计 业务层引入bsf core和autotest jar包,该根底框架能够对流量进行采样录制。采样录制的流量批量同步到mysql存储引擎。全链路压测治理端,进行工作编写并启动压测工作。压测工作散发到压测到节点集群,并进行样本流量批量回放压测。超过工夫或者指定条件后,主动生成压测报告。 单个节点倡议最大2000-3000并发线程,能够开多个压测节点(可部署10-20个节点,随时扩缩容),反对万级高并发大规模分布式性能压测。 全链路压测工作执行生命周期工作别离由样本筛选脚本,谬误过滤样本脚本,压测申请前脚本,压测申请后脚本,工作终止脚本组成。压测节点收到工作后依照工作执行生命周期,不间断进行压测,直到命中“工作终止脚本规定”后,失常退出。全链路压测治理端性能 工作治理:能够对定制的压测工作进行编写,治理。能够实现不同场景和不同姿态的压测进行定制。编写工作帮忙文档定时打算:能够对所有工作进行定时打算编写,治理。实现工作定时自动化调度。编写定时打算帮忙文档节点状态:能够治理所有压测节点的心跳和状态及以后的性能状况。压测报告:能够治理所有压测工作主动生成的报告。执行日志:所有压测工作和定时打算执行的执行日志,在压测执行异样的时候,能够查看执行日志获悉。采样查问:自动化bsf框架录制的流量或者用户主动导入的流量,能够通过此菜单进行查问和模仿调用验证。公共办法库:通过定义公共的办法库,简化工作和定时打算的编写。公共办法库帮忙文档用户治理:能够治理平台用户和token受权。帮忙文档:到gitee源码治理文档和一些最佳实际文档。 性能界面展现        by 车江毅 

January 6, 2023 · 1 min · jiezi

关于程序员:Flutter异常监控-叁-从bugsnag源码学习如何追溯异常产生路径

如果感觉文章对你有帮忙,点赞、珍藏、关注、评论,一键四连反对,你的反对就是我创作最大的能源。 ❤️ 本文原创听蝉 公众号:码里特地有禅 欢送关注原创技术文章第一工夫推送 ❤️ 前言没错,继Flutter异样监控 | 框架Catcher原理剖析 之后,带着那颗动乱的好奇心我又捣鼓着想找其余Flutter异样监控框架读读,看能不能找到一些好玩的货色,于是在官网介绍第三方库里发现了这货Bugsnag,大抵扫了下源码发现flutter侧主流程很简略没啥货色可看滴,因为这货强烈依赖对端能力,Flutter异样捕捉之后就无脑抛给对端SDK本人啥都不干 ,抛开Bugsnag这种解决异样的形式不管,源码里却也有一些之我见的亮度值得借鉴和学习,比方本文次要介绍Bugsnag如何追溯异样门路的设计思维和实现,对异样捕捉的意识有不少帮忙。 Bugsnag性能简介在介绍可追溯异样门路设计之前,有必要先科普下Bugsnag是什么? 让大佬们有一个大局观,毕竟前面介绍内容只是其中一个小的点。 Bugsnag跟Catcher一样也是Flutter异样监控框架,Bugsnag-flutter只是壳,次要作用有: 标准多平台(安卓,ios)异样调用和上报的接口。拿到flutter异样相干数据传递给对端。次要反对性能: dart侧异样反对手动和主动上报。反对上报数据序列化,有网环境下会持续上报。反对记录用户导航步骤,自定义要害节点操作,网络异样主动上报。这个框架的侧重点跟Catcher齐全不同,它不反对异样的UI客户端自定义显示,也不反对对异样的定制化解决。说白了就是你想看异样就只能登陆到Bugsnag后盾看到,后盾有套餐包含试用版和免费版(你懂滴)。 根本应用void main() async => bugsnag.start( runApp: () => runApp(const ExampleApp()), // 须要到bugsang后盾注册账号申请一个api_key apiKey: 'add_your_api_key_here', projectPackages: const BugsnagProjectPackages.only({'bugsnag_example'}), // onError callbacks can be used to modify or reject certain events //... );class ExampleApp extends StatelessWidget { const ExampleApp({Key? key}) : super(key: key); @override Widget build(BuildContext context) { return MaterialApp( navigatorObservers: [BugsnagNavigatorObserver()], initialRoute: '/', routes: { '/': (context) => const ExampleHomeScreen(), '/native-crashes': (context) => const NativeCrashesScreen(), }, ); }}// Use leaveBreadcrumb() to log potentially useful events in order to // understand what happened in your app before each error. void _leaveBreadcrumb() async => bugsnag.leaveBreadcrumb('This is a custom breadcrumb', // Additional data can be attached to breadcrumbs as metadata metadata: {'from': 'a', 'to': 'z'});import 'package:bugsnag_breadcrumbs_http/bugsnag_breadcrumbs_http.dart' as http;void _networkFailure() async => http.post(Uri.parse('https://example.com/invalid'));后盾成果展现Flutter异样显示页 ...

January 6, 2023 · 3 min · jiezi

关于程序员:Python-异步完整教程

Asyncio 容许咱们在 Python 中应用基于协程的并发异步编程。只管 asyncio 曾经在 Python 中应用多年,但它依然是 Python 中最乏味但最令人丧气的畛域之一。对于新开发人员来说,开始应用 asyncio 十分艰难。 本指南具体全面地回顾了 Python 中的 asyncio,包含如何定义、创立和运行协程、什么是异步编程、什么是非阻塞 io、协程应用的并发原语、常见问题和最佳实际。 目录1-5 5-10 11-15 16-20 21-25 总结本系列后续将继续更新无关Python 异步的相干内容。 欢送Star -> 学习目录 本文由mdnice多平台公布

January 5, 2023 · 1 min · jiezi

关于程序员:阿里云认证为什么那么多人考考试内容难不难

我国人口密集,每年有大量的毕业生涌进社会,除此之外还有很多进入社会很久的打工人,想要跳槽,到更加挣钱的岗位,待遇更好的公司去。为了可能早日买房、买车,很多人会抉择社会热门行业去学习,甚至是咋毕业后再进教育,学习大热的技能,古代最热门的行业就是互联网行业,越来越多的人打算进入这一行。 然而因为社会人才泛滥,不论是刚毕业的学生,还是曾经工作很久的打工人,想要取得一份好工作,最应该做的就是考取一份职业证书,从而晋升本人的待业竞争力,而对于互联网行业来说,最热门的业余就是云计算,阿里云是当初市场上占比最大的云计算厂商,其旗下的认证也是十分有含金量的。 阿里云考试内容 阿里云的考试内容和等级各不相同,考生能够依据本人的能力和须要来抉择适宜的认证,上面小编介绍几个热门的方向,有须要的能够参考,或者在认证大使上具体理解。 1、阿里云ACP云计算 考试内容 云服务器 ECS弹性伸缩(Auto Scaling)负载平衡 SLB 专有网络 VPC 对象存储 OSS 内容散发网络 CDN平安(云盾、云平安) 云计算通用常识 考试模式:线下考试 考试工夫:120min 2、阿里云ACP大数据 考试内容 大数据计算服务 Maxcompute 数据工场 DataWorks 数据集成 Quick BI 机器学习 PAI 和其余云产品配合的应 用及架构 考试模式:线下考试 考试工夫:120min

January 5, 2023 · 1 min · jiezi

关于程序员:C语言的输入与输出有点意思

本文首发自「慕课网」,想理解更多IT干货内容,程序员圈内热闻,欢送关注! 作者|慕课网精英讲师 张磊 输出就是将程序内部的数据输出到程序外部,输入就是将程序外部运行的后果等内容从程序外部输入到显示器,打印机或者寄存到文件中。 编程语言中的输入输出负担着程序与用户的交互工作。 规范输入输出C 语言中的规范输入输出蕴含 3 局部。规范输出,规范输入,规范谬误输入。表中列举了规范输入输出和与之关联的物理设施。 规范谬误输入就是当你程序出错的时候在屏幕上看到的信息。 规范输出2.1 scanf 函数这个函数输出是变量的地址,无关地址和指针的概念咱们会在前面有具体的介绍,这里大家只有简略记住这点就好。同时这个函数的返回值是一个整数,其实就是输出的字符的数量。这里是一个简略的示例: 实例演示 2.2 fgets 函数这个函数是从规范输出中读取一整行的内容。它会在遇到换行符或者文件结尾符号的时候进行执行。 实例演示 规范输入3.1 printf对于这个函数最次要的性能是输入有格局的字符。对于这个函数更为具体的介绍,会呈现在稍后的课程中。这里为大家简略展现一些这个函数的最根本用法。实例演示 3.2 puts这个函数是输入一行字符,相当于 printf 函数的字符输入模式,而后尾部又减少了一个换行符的模式: 实例演示 小结编程语言的输出与输入是编程语言的根本组成部分。 C 语言的语言的规范的输出和输入都指通过键盘输入和向显示器输入后果的过程。 这外面常常用到的函数蕴含: 输出函数。 scanf, fgets 等。输入函数。 printf, puts 等。 欢送关注「慕课网」,发现更多IT圈优质内容,分享干货常识,帮忙你成为更好的程序员!

January 5, 2023 · 1 min · jiezi

关于程序员:大学里面抢课到底可行吗我来给你彻底说明白

@[toc] 前言大家好,3年前,我是在大一的时候就写过一个讲课脚本,并且胜利抢到了选修课。 这是3年前的文章。如何实现简略的脚本来抢课。 工夫飞逝挺快的,从大一到大四我学了很多的计算机常识,努力学习,并且最终保研上了北大。 这3年也有网友陆陆续续找到我,心愿我能给他抢课或者说是征询抢课脚本怎么写。之前是工夫精力有限,当初我有工夫可能答复抢课方面一些事,心愿彻底解决大学生抢课方面的纳闷。 辨别抢课和捡漏首先要辨别抢课和捡漏。 在抢课阶段,往往是零碎十分的卡,挤不进去,最终导致没有课能够选。 捡漏的话,是他人退掉不想要的课,而后咱们拼手速来抢到他们退掉的课。 捡漏的工夫是远大于抢课的,首先来说抢课。 抢课胜利的原理当初的确是可能通过技术手段抢到课的,那么是怎么实现的? 首先选课的流程分为这几步: 浏览器加载出一堆能够选的课的列表点击选课服务器接管到学生的选课申请最初服务器解决学生申请后,选课就完结了,之后咱们不再关怀选课,咱们是不是卡在第一步,界面怎么都加载不进去。更不要说点击按钮了。 然而抢课的话,能够绕过第一步,第二步,间接跳到第三步,向服务器发送申请。 举个例子,如果说12点整选课零碎凋谢,那么12点整这时候服务器是可能接管选课申请的。 绝大数学生同时进入第一步的时候,零碎受不了,解决不过去就导致咱们十分慢。就算很快的同学也是12点过几秒才进去是吧,进去后还要点击对应课程选课按钮是吧,才会向服务器发送选课申请。 然而抢课的同学,12点整就间接向服务器发送选课的申请了,比最先加载出界面的同学还要更快。所以他们就可能最先选到课。 ==那么问题来了,向服务器发送的申请是什么,为什么能让抢课的同学选到课?== 抢课的要害,结构选课申请选课的申请外面携带的信息有,学生的详细信息,以及课程的信息。发给服务器后,这样就相当于就通知了服务器,哪个学生选了什么课。 举个例子,一个学生的学号是201911020127,一个选修课的课程编号是56,这样服务器零碎就会晓得,学号为201911020127的学生选了选课修编号为56,而后存入数据库,而后返回给你说,选课胜利。 下一个问题又来了,==抢课的同学是怎么晓得零碎记录对于本人的详细信息,以及课程信息的呢?== 答:通过抓包 简略来说,就是当时就要可能发送一次申请,须要通过拦挡工具拦挡后,提取外面的要害信息(包含学生信息,课程编号等等)。下次就可能本人结构一摸一样的申请,发送给服务器。 这样抢课的周期能够说必须逾越两次选课,也就是隔半年。个别状况没有哪个写抢课的技术人员,会违心第一次选课帮忙你致力钻研后,半年后再持续施行抢课(除开本人给本人抢课,或者说不同学校应用一样选课零碎的等等状况,很简单) 简单一点的话,我就不多深究了,上面是我一遍用fiddler抓包的界面,对非计算机专业学生要学的货色多一点。 所以说,个别抢课的就是技术人员,都是通过捡漏来选到你想要的课。 我讲明确了吧o( ̄▽ ̄)ブ 如何进行高效的捡漏捡漏,就是要通过一直的刷新,凭运气呈现你想要的课后,和其他同学来拼手速来抢它。也就是咱们说的选课第二步。 要胜利捡漏了话有两种形式: 用脚本放慢手速这种形式是我三年前那篇文章应用到的,用java写的,其实非计算机专业学生也能够通过按键精灵等软件来实现,一直点击刷新和选课的两个地位。当然,这样抢的课是随机的。用脚本频繁发送申请(抢课中提到的申请) 这样就能针对具体的课进行捡漏,实用性高一些,选课胜利的概率也低一些,更须要看别的同学释不开释这个课程。 这不巧了,捡漏的话,咱们能够绕过第二步,一直进行第三步,向服务器发送信息。 一旦其他同学开释掉课后,咱们因为一直发送选课的申请,会有更大的几率被服务器接管,只有课程满人了,其他人发送的申请就生效了。画个简图,很容易了解。 我的倡议针对计算机专业学生如果你想要本人写脚本的话,能够学python,或者java都是能够的。当你学了一段时间后,你本人会悟出来,怎么来写一个管制鼠标键盘的脚本。 如果你想要抢课的话,我倡议是学习爬虫,爬虫会让你明确客户端和服务器之间是怎么进行申请的,学了一段时候后你就可能本人结构申请了,当然结构抢课的申请也不在话下。 零根底学习的周期会比拟长,要有一个心理准备,个别根底语言学完的话要2-3个月,爬虫学一点的话要1个月。这些必定都是要建设在实操的根底上。 针对非计算机专业的学生不要本人去学习写脚本,周期会很长。 倡议间接去网上找专门抢课的人员,必定会有的。我四周就有专门给他人抢课的大学生,切实不行去淘宝、去咸鱼上、去公众号上都找找,有贵的也有便宜的。 最初,我是写过很多爬虫的计算机专业学生,但很久没有写过抢课脚本了。如果有问题的话,欢送来我的公众号分割我,我会尽力解答。

January 5, 2023 · 1 min · jiezi

关于程序员:字节裁员一万多人没给年终HR还被打是真是假听我给你分析

明天被这条新闻刷爆了吧!字节明天裁员10%,没给年初,HR被员工打进医院。 小伙伴震惊字节怎么做得出这样的事。 截图中这位叫火火的敌人朋友圈公布了这条音讯。假相又是怎么的呢? 字节造谣:是假的!据磅礴新闻报道。1月4日,字节跳动相干人士示意,网传“裁员没年终奖字节员工与HR互殴”音讯不实,经排查,公司外部未发现互殴状况,字节跳动往年的年终奖评定工作还没有启动,个别在每年4月发放。认真看下面这一则造谣,提到“互殴不实”,也提到“年终奖还没开始评定”,否定了打架和不发年初的事,但!闭口不谈裁员的事。 技术交换群的敌人说道(加我微信进群) 当初的造谣会比拟奇怪。相似某某公司网上音讯是欠款1000万。官网进去说音讯不实,而后再补充阐明是欠999万。大家看到最开始那个造谣感觉是没有这件事件,然而理论是性质差别不大。或者某某音讯xx员工猝死了。造谣说假的,然而只辟身份之类出入,看到造谣大众会认为是没有这回事,然而公司也算没有说谎,达到了目标。所以看造谣不能看外表,官网不肯定否定了全文。裁员10%看似不多,要晓得就目前字节的体量而言,截至2022年底字节跳动有约11万名员工,也就是说此次裁员或将波及1.1万人。 1.1万不是一个小数字,要晓得摩洛哥也不过只有4万人。在往年10月的绩效评定之后,字节跳动这一轮裁员曾经有了征兆。 界面新闻报道称: 多位字节跳动员工示意,本人在绩效评定中遭逢了不公正待遇,同样的工作内容之前拿了失常绩效,10月份却拿了低绩效。在绩效评定之后,低绩效员工陆续收到HR或者直属领导的独自谈话告诉。在谈话中,HR或直属领导多以“工作能力不行”“进来看看机会”“产出与职级不匹配”“以后团队没有你的地位,不必想降职”等理由诱导员工自行到职。回绝自行到职的员工中,有人被以影响背调等理由要求被动到职,还有人被公司发动PIP打算,要在两个月内实现半年的工作量,还要实现大量本不在本人职责范畴内的工作。在脉脉上捕风捉影,看到某些不违心走漏姓名的敌人示意已中招。 界面新闻还示意:各个业务线也已根本确认优化指标,今日头条、抖音、飞书、Tiktok、商业化、Data、懂车帝等业务线均有员工收到了裁员告诉。此外,本次裁员波及研发、产品、经营等多个岗位。 没想到去年我还收到过七八个字节打来的挖人电话,往年一开始就听到这样的音讯,让我很震惊,不禁思考字节为什么会有这样的行动?这家公司去年的营收是怎么的呢?真的是揭不开锅须要靠裁员度过寒冬吗? 左头条,右抖音,外加TikTok风靡海内,字节那么多产品毫无疑问曾经是最能打的互联网企业之一,来,咱们来看看字节营收状况! 小熊没找到2022的营收阐明,因为字节没有上市所以也没有公开的财报, 2020年,字节跳动营收为2366亿元,相当于每天入账6.5亿元,同比增长111%,是腾讯同期营收的一半,快手的4倍。2021年,字节跳动全年营收4391.6亿元,相当于每天入账超过10亿元,同比增长80%。增速同比有所放缓。经营亏损总额为71.5亿美元。按这个阐明再看,再加上字节始终未停的疯狂招人行为,尽管营收很高然而每天都在亏损,裁员兴许真的是被逼无奈?那咱们再来看看字节的工资收入。 依据职友集裸露的信息,字节平均工资为33.4k由21911人奉献。 33.4*21911=731827.4k=7.3亿*15薪=109亿一年就要收回去109亿人民币大概15.82亿美元,这还只是1/4的员工,乘以4就是63.28亿美元的工资,还没有算各种大楼租金+员工福利+办公设备等的破费。 再看飞书、企业微信、钉钉在2021.10月的团队人数/月活比照。 2021年的数据都如此,当初恐怕更加夸大,管中窥豹,可见一斑,兴许字节真的呈现了狼多肉少的状况。企业倒退迅速的时候疯狂扩张,企业倒退平缓的时候,开始裁员。 兴许是暴风雨降临前早有预兆,而咱们小小员工又能做什么呢? 本文由mdnice多平台公布

January 4, 2023 · 1 min · jiezi

关于程序员:信息通信技术行业需要考什么证

最近几年,信息通信技术倒退迅速,曾经成为了将来最具影响力的行业,很多人在大学时就会抉择这一业余,有的人在毕业后也会抉择再教育,以此来晋升本人的能力。而这个行业的薪资尽管高,然而要求也高,对于刚刚毕业的学生来说,想要可能疾速取得一份稳固的工作,在临毕业时考一份职业认证是不二的抉择;而对于曾经步入社会多年的打工人来说,想更上一步,升职加薪,最初的抉择也是考取相干的职业证书。 目前市面上的证书品种泛滥,针对的人群、考试内容也各不相同,从业人员个别须要依据本人的需要来考试,个别状况下,一个人能够考多个认证,对于本身的能力晋升、面试待业都是有很大帮忙的,上面大使就介绍一些目前热门的信息通信技术认证,有须要的能够在[[认证大使]](https://www.ls102.com/adbout)上具体理解。 一、国家认证的证书 信息通信技术是第四次工业革命的配角,各个国家都在致力倒退本人的技术,以求能够在这场改革中取得利益,走到领头的地位,因而国家也推出了很多对于该技术的认证,并且领有很多的福利,能够提供给持证人。 1、工信部认证 国家工信部推广的证书,其目标是为了给打工人提供能够证实其能力的证书,在这个过程中考生须要通过零碎的学习,才能够把握考试须要的常识,因而这也是一个晋升考生能力的过程,而且工信部的证书品种多,有程序员、软件工程师、信息集成师等等,利用范围广,须要的人能够抉择适宜本人的认证。 2、计算机技术与软件业余测试 这个考试俗称软考,不仅是信息通信行业的必考证书,更是计算机行业的必考证书,考试方向有信息系统项目管理师、网络管理师、程序员等等,分为高级、中级以及高级三个等级,考生能够依据本人的须要以及能力来抉择适合的考试。 二、通信技术大厂认证 1、阿里云认证 作为目前市场占比最大的云计算厂商,阿里云旗下的认证在行业内广受好评、备受认可,不论是对于刚毕业的大学生来说,还是曾经工作好几年的打工人来说,都有适宜本人的认证能够抉择,而且很多企业都会应用阿里云的产品,就业机会十分多。 2、华为云认证 华为是当初口碑和技术双收的品牌,在短短几年之内就回升到了全国第二的地位,其认证包含云计算、数通等方向。 3、腾讯云认证 腾讯是我国的老字号厂商,次要在游戏、社交行业的合作伙伴多,而且其个人用户多,认证次要包含运维、开发以及架构三个方向。

January 4, 2023 · 1 min · jiezi

关于程序员:注册ChatGPT遇到的坑

步骤:关上ChatFPT网址注册,应用国外的邮箱,我没有,就用的其余登录形式,其中其余登录形式分为google和mcrosoft,我选的是mcrosoft一个国外手机号通过验证(参照这个视频注册国外手机号,须要花1.5元)踩坑:A)刚开始图便宜,用的这个收费国外手机号网站后果被辨认虚构号不能用,陆陆续续用其余能够收费应用的网站,相继失败。B)最初服软,参考b站上的教程应用了这个网站的手机号,花了1.5元左右,应用办法见这个视频,留神!肯定要看视频的评论,不要用印度的!!!(噩梦开始)血的教训!!!我用印度尼西亚的手机号能够接管验证码)C)在刚开始验证手机号阶段,尝试次数太多,导致以后的mcrosoft账户无奈顺利验证手机号了,换用了新的账户,才胜利,其中换新账户我又注册了一个新的网易邮箱,555~~~ 总结:硬性条件:迷信上网+付费的虚构手机号网站是胜利的要害!操作倡议先迷信上网,再关上chagpt网站,应用mcrosoft注册登录,应用付费的虚构手机好网站接管验证码(不要用印度的手机号!)

January 4, 2023 · 1 min · jiezi

关于程序员:融云获-2022-中国技术先锋年度评选中国技术品牌影响力企业奖

1 月 4 日,2022 中国技术先锋年度评比“中国技术品牌影响力企业”榜单正式公布,融云以专一、业余,继续精进的技术实力荣登榜单。 据悉,该榜单由中国当先的新一代开发者社区——SegmentFault 思否推出,依靠数百万开发者用户数据分析,联合各企业在国内技术畛域的行为及影响力指标评比而出。 所以,该奖项是间接来自开发者的点赞和认可。而融云从开办起,就是开发者守业,也是为了开发者的守业。 开办以来,融云始终保持“所有为了开发者”的长期主义路线,继续耕耘外围通信技术和业务场景实际,成为了寰球 25 万+ 开发者的信赖之选。 开发者的长期主义是对技术的不懈谋求,融云的使命之一就是帮忙开发者更加多、快、好、省地实现软件开发和业务实现。 在继续精进技术、翻新产品和优化体验的同时,融云也随同中国开发者的出海步调将服务笼罩至寰球。几年间,融云搭建起笼罩寰球 233 个国家和地区的寰球通信网,提供稳固的海内链路、最优的通信品质、平安的数据备份及牢靠的业务容灾。 往年,融云重磅推出一站式全生态出海解决方案,更好地反对开发者顺着社交泛娱乐的东风在寰球寻求倒退时机。 同时,融云曾经开始在中东等地区与当地政府强力单干,以技术输送者的角色参加构建当地的国民级利用,将来还打算通过平台能力联结更多中国 App 和 SaaS 独特出海。

January 4, 2023 · 1 min · jiezi

关于程序员:2022-年终总结

上海解封后,摄于北外滩酒店 生存 - 封闭和凋谢「暴风雨完结后,你不会记得本人是怎么活下来的,你甚至不确定暴风雨真的完结了。 但有一件事是确定的:当你穿过了暴风雨,你早已不再是原来那个人。」 - 村上春树《海边的卡夫卡》 2022 收场十分魔幻,3 月份咱们在上海迎来了长达两个多月的封城。 从浦东浦西鸳鸯封再到浦东上海全域动态治理,从开始说的几天关闭到继续两个多月的关闭, 我第一次切身体会到自在是无价的,也学会了如何在复杂多变的环境参加个体流动, 爱护本人和家人。 疫情拉近了人和人之间的间隔,原本在线的网友纷纷变成了线下的团长、志愿者。 在短少物资(包含起初凋谢后阶段短少布洛芬)状况下,印证了「远亲不如近邻」。 我和夫人两人都是社区踊跃参与者,早在疫情之前就通过贴二维码形式组件了小区微信群。 这次疫情中,咱们两人也轮流参加志愿者,我搞了若干次团购,还总结了一篇 如何组织疫情团购。 年底的凋谢也是从天而降。 凋谢之后很快一家人都阳了。可怜中的万幸是阳的有序,至多还有「牧羊人」来做饭。 但一位亲人没有挺过这次疫情,她刚进行了手术。 手术很顺利,曾经转入一般病房期待昏迷复原, 后果遇上了新冠病毒。最初逝世的起因不是原来脑部出血问题,而是新冠引起的呼吸衰竭。 我匆匆赶过去做了最初的送别,恍惚间,前几周还在家中健谈小辈各种趣事,忽然就变成了天人永别。 悲哀之余,感叹人生命运无常和集体渺小有力,心愿生者刚强,穿梭阴郁持续前行。 我不想过多谈及政策、医疗制度、清零派和共存派的奋斗。 只是感叹一般老百姓的生存不易、疫情的有情和生存的残暴的假相。 人到中年,愈发感觉好消息都是顺其自然应理所应当,而坏消息都是猝不及防怎会这样。 工作 - 跬步和千里大问题并不需要大规模的解决方案,而是一个口头上的根本框架加无数个渺小决策这是我齐全投入 Kubernetes 畛域的第二年, 这一年精力都投入在如何大规模集群的优化和相应的工具平台。 目前我治理的外围集群规模超过一万节点,集群数量也近百, 规模带来了性能、容量、爆炸半径的治理难度,用户的需要也经常变幻无穷。 大规模集群面临的挑战在变多,历史债权却继续积攒始终没有偿还洁净, 而且还在一直要解决新退出的简单问题:监管、多环境、对公云服务等等。 公司有稳固的业务和相当多试错场景,然而也包裹着海量的债权。 业务的压力导致了往年还一直在解决问题,没有投入太多的精力去做创造性的事件。 当初工作中面临最大的问题是体系化建设,挑战是如何繁琐的事件中将碎片的事件捏成团, 解决问题同时还要有翻新。 往年还陆续给 ArgoCD 提了几个 PR,以解决在如此规模集群下 ArgoCD 工作性能问题。 惋惜我投入最多工夫的 lock-free 和 lazy watch 两个个性始终还没合入上游,几个前置的小 PR 都解决比拟迟缓。 除了本职工作,还做了一些其余有意思的事件。 往年负责了大团队首席学习官,组织了两季 Infra SRE Meetup, 给大团队同学们搭建了一个场子分享, 我充分发挥了经营能力和设计能力,整了好多花活。 另外,我还意外地成为了一位厂里 Go 语言专家评委,参加了我厂 Go 语言标准的制订。 尽管我只是过来水了几场会议,倒是有这个机会跟更多技术老炮们交流学习。 ...

January 4, 2023 · 1 min · jiezi

关于程序员:什么是快速排序

本文首发自「慕课网」,想理解更多IT干货内容,程序员圈内热闻,欢送关注! 作者| 慕课网精英讲师 JdreamZhang 疾速排序(Quick Sort),是计算机科学与技术畛域中十分经典的一种排序算法,利用分治思维进行排序。疾速排序因为其工夫复杂度优于大部分的排序算法,因此命名为疾速排序。疾速排序实现的核心思想就是在待排序序列中抉择一个基准值,而后将小于基准值的数字放在基准值右边,大于基准值的数字放在基准值左边,而后左右两边递归排序,整个排序过程中最要害局部就是寻找基准值在待排序序列中的索引地位。1. 疾速排序过程明天咱们来看一下疾速排序的实现步骤具体是什么样的吧。同样地,和之前介绍归并排序时一样,这里咱们假如待排序的序列为 [9,2,11,7,12,5],咱们依照从小到大的序列进行排序。1.1 算法形容疾速排序也是利用分治法解决问题,次要分为以下三步:步骤 1:从待排序序列中抉择一个元素,称之为基准(pivot),在这里咱们抉择待排序序列中第一个元素作为基准。步骤 2:对整个待排序序列进行从新排序,小于基准的元素放在基准后面,大于基准的元素放在基准前面,基准放在序列两头,这个步骤个别称之为分区操作(partition)。Tips: 步骤 2 的执行其实就是给基准元素找到了适合的排序地位。分区操作的伪代码如下,最重要的就是双指针的利用,将待排序序列基于基准进行分区://对数组A进行一次分区操作int pivot = A[0]low = 0high = A.length-1//进行分区操作,找到基准的地位while (low < high){ while(low < high && A[high] >= pivot){ high = high - 1 } A[low] = A[high] while (low < high && A[low] <= pivot){ low = low + 1 } A[high] = A[low]} //最初赋值基准A[low] = pivot代码块1234567891011121314151617步骤 3:递归的将小于基准的子序列和大于基准的子序列进行排序。其实,下面的排序步骤就是分治法的典型利用,抉择基准分拆序列造成子序列,在子序列中从新排序,实现排序之后进行合并,只是因为在这里实现子序列的排序后待排序序列曾经实现排序,所以无需进行合并的工作。这里,最须要留神的就是步骤 2 中的分区操作,这外面会用到一种最为经典的双指针操作,前后两个指针别离记录须要替换的元素地位,前面的代码示例中会具体阐明。接下来,让咱们用下面的待排序数字队列 [9,2,11,7,12,5] 进行整个算法步骤的排序演示工作。1.2 算法演示依照排序步骤,首先咱们从待排序序列中抉择一个基准 pivot,这里默认抉择待排序序列中的第一个元素,如下:[9,2,11,7,12,5] --> 9 //抉择第一个元素9作为基准pivot代码块1接着,咱们用下图的示例来阐明步骤 2 中的分区操作,这里用到了双指针 low 和 high。具体示例如下图:依照上图的示例,能够很分明地晓得,其实疾速排序的实质就是把比基准大的元素都放在基准数的左边,把比基准小的元素放在基准数的右边,这样就找到了基准数据在数组中的正确地位。当前采纳递归的形式别离对前半部分和后半局部排序,以后半局部和后半局部均有序时该数组就天然有序了。如前文中说到的疾速排序其实最次要的就是双指针的利用,就是体现在分区操作时候的双指针进行分区。2.Java 代码实现在阐明疾速排序的整个过程之后,接下来,咱们看看如何用 Java 代码实现疾速排序算法。import java.util.Arrays; ...

January 3, 2023 · 1 min · jiezi

关于程序员:黑客在线出售-4-亿-Twitter-用户数据Mozilla-修复了-18-年的历史-bug|思否周刊

40S 新闻速递Mozilla 修复了一个 18 年历史的 Firefox Bug苹果芯片部门呈现了重大人才流失状况,A 系列芯片性能将被高通骁龙追赶上DuckDuckGo 将屏蔽 Google 烦人的登录提醒Visual Studio 现已内置 Markdown 编辑器黑客在线发售 4 亿 Twitter 用户数据,喊话马斯克超过 macOS 5000 多倍!Windows 成 2022 年恶意软件次要攻打对象Firefox 启用 “新架构”,速度成倍晋升DBeaver 22.3.1 公布Solon Java Framework 1.11.6 公布Ruby 3.2.0 公布行业资讯Mozilla 修复了一个 18 年历史的 Firefox BugMozilla 修复了一个有 18 年历史的 Firefox Bug。Bug 290125 最早是在 2005 年 4 月 12 日报告的,问题与 Firefox 渲染带有::首字符 CSS 伪元素的文本无关,浏览器应用的 Gecko 引擎会疏忽任何申明的行高,继承父框的行高。该问题始终被归类为低优先级,直到 2022 年 12 月 20 日才修复,Firefox 110 将蕴含更新后的代码。目前 Firefox 最新稳固版本是 108,110 预计将在 2023 年 2 月释出。 ...

January 1, 2023 · 2 min · jiezi

关于程序员:融云任杰激活组织生命力-让听见炮火的人做决策-TGO专访

任杰,融云联结创始人兼首席科学家,TGO 鲲鹏会(北京)学员;曾就任于微软和神州泰岳等公司,在微软两次取得寰球卓越员工奖,曾负责中国联通搭建 WAP 网关、增值业务管理平台;在神州泰岳期间,率领飞信产品研发团队,从 0 到 1 实现中国移动飞信零碎研发,业务峰值达到 3.8 亿注册用户;2016 年退出融云,历任 CPO、CTO 等职位,现任融云首席科学家。 与这个时代的很多程序员一样,任杰的代码人生也是从游戏开始的。一款操纵矿车挖金子的古早小游戏,胜利引起了任杰对计算机的好奇,他开始自学编程并在起初抉择了宁夏大学的计算机专业。关注【融云寰球互联网通信云】理解更多 1998 年任杰毕业,彼时国内互联网正值从基础设施向利用设施传导的黄金年代,任杰南下深圳进入中国移动,负责营账零碎和增值业务平台研发,正式开启了通信行业旅程。 起初,他又辗转来到北京,进入了微软负责征询参谋,专门负责电信行业。这个期间,网络技术突飞猛进,人们越来越习惯应用即时通讯软件进行沟通,尤其是在办公场景,即时通讯利用大有赶超邮件之势。也是在这个期间,任杰第一次接触 IM 即时通讯,为央视打造了一款即时通讯产品。 2008 年,任杰退出了飞信团队,出任 CTO。他率领的技术团队从最后的 400 人倒退到 1000 多人,实现了对即时通讯的原始技术和经营教训积攒。 种种因素导致飞信这款国民级利用遗憾折戟,成为一代人的回顾。但一群因飞信凝聚在一起的通信人,决定把这份印记延续下去。这就是包含任杰在内的融云开创团队,他们从飞信出师,开办了通信服务品牌融云,以行业独创的即时通讯 PaaS 服务登程,并在市场和客户的需要变动中冲破本人一直进化。 让星星之火成燎原之势 创业者的要害使命2014 年,融云以原中国移动飞信技术团队为外围,打造 To B 市场的通信云服务平台,推出了面向开发者的 IM 即时通讯 SDK。守业初期团队都认为,IM 的需要是泛行业市场的,各行业的沟通都离不开通信云服务。但看似广大的市场里,需要热度高下不同,融云要在开放性的环境下,找到精确方向。 在几个高热度方向试水实际后,任杰和团队发现,并非所有行业都有强需要。“比方,游览行业专一游览资源和线路设计,房地产行业更关注房源,他们虽有大量沟通需要,但不是十分迫切。” 最终,融云明确了社交、泛娱乐的主战场,它们对 IM 有着强烈需要,且用户数量足够多。这是融云在互联网私有云市场的次要阵地,并且至今依然是融云的主力市场之一。而后,融云一边继续优化 IM 服务体验,一边开辟其余服务内容,比方 RTC 实时音视频 SDK,以及起初的推送、审核、美颜、白板等一系列通信周边能力。以“IM+RTC+X”的残缺通信解决方案为根底,融云推出了语聊房、直播、超级群、1V1、元宇宙、游戏等解决方案,服务出海开发者对翻新场景的摸索。2018 年,融云将本人于私有云市场积淀的规范能力,内化为反对本地部署的私有化通信技术中台,以通信中台赋能政企协同办公产品,追随客户进行了大量细分场景的业务积淀。 据《2022 年中国政企数智办公平台行业钻研报告》显示,2021 年数智办公平台市场规模已达 74 亿元,增速达 22.1%。随着挪动化办公浸透加深带来的第一轮建设和政企外部需要降级疏导的第二轮建设,预计市场在将来 3 年将以 20% 的复合增速增长。 过往的深厚积攒,让融云可能对市场的需要做出敏锐响应。近期融云推出了“百幄”数智办公平台,让公司丰盛的产品构造和翻新的服务模式最终成型。任杰示意,“作为管理者,最重要的责任便是在各种星星之火的机会中找到燎原之势。” 从幕后到台前直面中大型组织客户不同于以往以技术“赋能”的形象,融云要亲自下场以高度产品化的“百幄”从幕后走到台前,深刻政企办公业务,直面中大型组织客户。“百幄”以高频应用的外部通信切入,以工作台为入口,围绕政企办公畛域波及到的人、工作、常识、业务、场景,将各类办公服务串联在一起,具备利用聚合能力的对立办公平台。 任杰示意,2018 年起,融云便以通信中台能力赋能千行百业的办公场景,次要交付形式是作为通信模块被集成于办公等各种零碎中。而随着数字化转型和国产化大潮的推动,政企对办公平台的需要产生了极大转变。 首先,通过多年倒退的党政军国央企,大部分经验了整个倒退周期,每个阶段都会建设合乎过后需要的信息化零碎,所采纳的技术计划、部署形式也都带有显著的阶段性特色。这带来两个后果:一是政企外部“烟囱”丛生造成一座座数据孤岛,各零碎服务能力的穿插又造成了资源的节约,政企须要能够交融多个零碎的对立办公平台;二是政企的信息化现状和组织构造、流程规定各不相同,须要能灵便满足本人数字化转型需要的定制化产品,而不是一个通用型产品。 其次,国产化大潮下,政企对信息安全的器重水平一劳永逸,而办公通信又是其中最外围的局部。这就要求服务商在国产化适配方面有肯定的积攒,而对信创生态的长期适配,恰好是融云作为技术服务厂商的专有保持。 在这种背景下,融云推出了“百幄”数智办公平台,通过扭转政企独立建设、互相割裂的业务零碎搭建形式,提供对立的身份认证、对立的音讯待办告诉以及对立的业务利用入口,能够无效晋升政企办公效率。任杰强调,除了提高效率,数智化办公平台的实质目标是要使组织更具韧性。这就强调平台要满足中大型组织的大规模并发需要,应答政企简单组织构造跨层级、跨地区、跨零碎、跨部门、跨业务的协同和治理挑战,且需具备平安和灵便属性。在高并发、高可用能力方面,融云的通信模块具备全员应用、高频调用的特点,在高并发、高可用的架构能力方面人造具备性能劣势;在信息安全方面,融云反对私有化部署,反对国密加密,实现了对所有支流国产化计划的适配,反对信创根底环境下的政企办公平台搭建等;“百幄”的模块化和组件化产品构造,可适配政企的个性化需要,为不同行业提供数智化协同办公综合解决方案。 翻新与容纳文化让团队向将来登程从 IM 即时通讯到 RTC 实时音视频,从关注社交泛娱乐的互联网市场到聚焦办公的政企市场,融云稳固的组织能力和疾速响应市场需求的能力,得益于公司文化中对翻新和容纳的强调。 ...

December 30, 2022 · 1 min · jiezi

关于程序员:Flutter异常监控-贰-框架Catcher原理分析

前言在给 Flutter 利用做异样监控的时候,一开始我是回绝滴,如果不思考 Flutter Engine 和 native 侧的监控,用我另一篇文章中不得不晓得的 Flutter 异样捕捉知识点 提到的办法根本能够搞定所有 Dart 侧异样,要害代码也不多,简单不到哪里去。如下(有不分明原理的能够看下原文,这里就不赘叙了): void main() { FlutterError.onError = (FlutterErrorDetails details) { Zone.current.handleUncaughtError(details.exception, details.stack);//Tag1 //或customerReport(details); }; //Tag2 Isolate.current.addErrorListener( RawReceivePort((dynamic pair) async { final isolateError = pair as List<dynamic>; customerReport(details); }).sendPort, ); runZoned( () => runApp(MyApp()), zoneSpecification: ZoneSpecification( print: (Zone self, ZoneDelegate parent, Zone zone, String line) { report(line) }, ), onError: (Object obj, StackTrace stack) { //Tag3 customerReport(e, stack); } );}为什么会找到 Catcher,有三个起因: ...

December 30, 2022 · 7 min · jiezi

关于程序员:如果你要跳槽该怎样准备面试

往年各种模式都不太好到处都在砍人,裁员就算还在你头上暴扣。 很多兄弟姐妹就动了跑路的心理。这里简答分享下几年前跑路的时候筹备的思路。 该不该先筹备几个月?很多人都有这样的纳闷,我的论断是不该!当你决定跑路的那一刻,就能够开始面试了,没必要节约那工夫在筹备上,疯狂筹备不如撒手一博,你会发现问的问题都大同小异。 因为面试通过率和你面试的熟练度是一个正相干的关系,所以还是倡议先面试一些"不那么"想去的公司。把握大的,想去的放在前面。 面试是一个重复记录和晋升的过程,特地是工作工夫不长专家以下的群体,面试大多有共性,会有相当多的高频问题被提起。 有的公司审批周期长,甚至逾越三四个月。边面边练手,好的放前面。能够先投,而后约晚一点面试。算法到底该刷多少?算法这种货色只有有根底,不必刷太多,我集体认为各个公司面试算法的目标也不过是看这个人的思维能力如何,代码格调与边界思考是否全面。 刷够hot100即可,而后上 codecc.top 上找对应公司的高频题就行。(这个网站不晓得为什么最近上不了了) 按类型刷按难度刷按频率刷在面试的过程中,如果波及到算法,倡议大家在练习算法的时候,无意识的管制本人破费的工夫。 简略题目10分钟以内,其余题目管制在20分钟,如果达不到,就看题解,而后学会当前从新做一遍,还是卡20分钟内做完。 做题过程中最好先看清题目,如果是面试过程中,倡议先说一下对题目的了解,避免因为了解谬误导致做错,那就太惋惜了。 在写代码之前说一下思路,有的面试官会给适当的提醒,有的面试官不会,如果你的思路不对,有可能会给指出来。而后再来实现。 倡议多刷题,每个类型的至多刷三道,把握常见题目的套路。 面试心态怎么把控?在面试的过程中最重要的就是心态,太过器重一家公司,心里压力会大很多。咱们要在策略上鄙视战术上器重,进步本人的自信。我充斥自信面试的公司就没挂过。 交换的过程,不要当作被考察者,而应该把态度放平,将面试官当作本人的共事,纵使对面级别再高,放弃尊敬的同时,尝试像敌人一样交换。 遇到不会的问题,平时怎么和共事对需要就怎么对,先确认对方想问什么,而后一起想解决方案,好的面试官是会违心探讨的,因为这个过程是双向的,他也能学到货色。 有时候挂的起因是没了解对方说的,而后话痨扯东扯西,请听完对方说的话,适当进展。 时间表最初给大家分享一个筹备的时间表,实用于字节这种相似的公司。 7点:无痛起床,平板撑持1分钟,洗漱洗澡、学习英语、吃早饭8-9点:1小时,背诵前一天的面试技术类相干知识点9-10点:1小时,查找和记录面试高频技术题目10-12点:2小时,算法,20分钟一题共6题,10分钟做完,10分钟手写12-14点:2小时,吃饭,午休14-18点:4小时,12题算法,10分钟做完,10分钟手写18-19点:1小时,晚饭,劳动19-21点:2小时,看书,更新面试技术类相干知识点21点-23点:2小时,2题算法,加今日算法回顾,解决没有做完的算法23-23:30:30分钟,写日记23:30-24点:洗漱洗澡、看书,睡前不能够玩手机这个工夫比拟刻薄,比拟适宜校招或者工作三年内的,高级一些的岗位问的那些比拟灵便的问题。比方思考设计、架构想法之类的问题也只能靠平时积攒了,靠背几篇博客还是容易露馅的。 始终致力吧。 祝大家面试顺利。 本文来自小熊的常识星球节选,退出送书:https://t.zsxq.com/eIQbaQB 本文由mdnice多平台公布

December 29, 2022 · 1 min · jiezi

关于程序员:融云-CEO-董晗国产化进程加速助推政企数智办公平台深化发展

残缺报告,限免下载 政策催化加疫情助推下,办公线上化迅速实现着市场教育曾经成为以后的支流趋势。而随着“国产化”成为各行业数字化倒退路线上的关键词,政企办公畛域国产代替的倒退确定性更加凸显。关注【融云 RongCloud】,理解协同办公平台更多干货。 近期,融云与艾瑞征询联结公布的《2022 年中国政企数智办公平台行业钻研报告》(下简称《报告》)显示,2021 年数智办公平台市场规模已达 74 亿元,增速达 22.1%。随着挪动化办公浸透加深带来的第一轮建设和政企外部需要降级疏导的第二轮建设,预计市场在将来 3 年将以 20% 的复合增速增长。 《报告》进一步提出,将来数智办公平台会朝着挪动化、智能化和集约化方向倒退,并且连接内部客服类零碎,实现内外协同的行业趋势。 联合国产化过程减速的大背景,融云 CEO 董晗认为,这将催生一个微小的政企办公市场,咱们将正式迎来政企数智办公的黄金时刻。就在往年下半年,融云正式推出了面向政企的数智办公平台产品“百幄”。 “百幄”的推出,对老牌通信厂商融云来说意味着什么?而进军政企办公畛域,融云手上又有何“屠龙宝剑”?中国软件网记者特邀融云 CEO 董晗,带来一次深度的独家访谈。 |精耕细作|外需内因独特驱动“百幄”诞生融云“百幄”的推出并非偶尔。事实上,早在 2018 年,融云便以通信中台能力与搭档单干赋能政企协同办公场景。多年积淀,深刻业务,才形成了现在“百幄”的集大成劣势。 过来多年,政企组织均领有了肯定的信息化根底,但不同期间各具阶段性特色的零碎建设积攒下来,导致的后果之一便是“零碎和软件越来越多,而数据却流动不起来”。这也是数字化转型的原因和指标,就是要实现数据和零碎的交融。 正因如此,基于即时通讯搭建数智办公平台,扭转独立建设、互相割裂的业务零碎现状,提供对立身份认证、对立音讯待办告诉以及对立业务利用入口,成为目前政企办公平台的支流趋势。 外有客户需要,内有融云积攒,双重驱动之下,融云“百幄”应运而生。 融云“百幄”数智办公平台,以高频应用的外部通信切入,以工作台为入口,围绕政企办公畛域波及到的人、工作、常识、业务、场景,将各类办公服务串联在一起,构建沟通协同、组织治理、利用治理和平安治理四大模块,打造具备利用聚合能力的对立办公平台,助力政企行业实现平安、高效的数字化能力建设。 |信创为基|全面适配国产化的体验降级2022 年 9 月 28 日,国资委 79 号文全面领导信创产业倒退进度,提出 2027 年前实现党政两大外围体系及金融、石油、电力、电信、交通、航空航天、医院、教育等次要行业的国产代替工作。 这对行业来说是一道明确的前行指引,将激活大量的国产代替需要,也是融云动摇入局政企办公畛域的强心针。“在国产化方面,融云筹备已久。”董晗说。 目前为止,融云曾经实现了对所有支流国产化计划的适配,涵盖芯片、操作系统、数据库、中间件等 300 多种组合,反对信创根底环境下的政企办公平台搭建。 “百幄”还提供服务架构、客户端、网络传输、业务数据、系统管理等多维度平安保障,反对阅后即焚、电子水印、终端近程擦除、音讯存储加密、防截屏、客户端防篡改、客户端反编译等全方位平安加固。 更为重要的是,国产化适配只是融云的基本功之一。在此基础上,“咱们还多做了一步,就是对国产硬件的性能调优,‘百幄’在绝对低配的硬件上也能够在内存占用、反应速度等方面体现更好、体验更佳。”董晗介绍道。 |灵便组件|反对政企搭各自的“变形金刚”说到“百幄”的产品构造,除沟通协同、组织治理、利用治理和平安治理四大模块之外,董晗用 6+2+N 来高度精炼地概括“百幄”的灵便组件“独家秘方”: 6 指 6 个场景化 Kit,即办公、会议、通讯录、工作台、近程导办、超级群 6 个最罕用的组件。 2 是融云传统劣势,外围通信 PaaS 能力即时通讯 IM 和 实时音视频RTC。 N 是“三方产品交融计划”,次要指在与办公和通信非强关联的功能模块上,由融云甄选第三方业余服务,通过接口调用或 OEM 的模式取得相干能力,比方流版签、在线文档、内容审核等。 “6+2+N,让客户取得对立的服务,同时也领有肯定的抉择空间。” 这是融云身为 PaaS 服务商的门路劣势,对融云来说,模块化、组件化、个性化的产品架构设计是刻进“骨子”里的基因。 ...

December 29, 2022 · 1 min · jiezi

关于程序员:4EVERLAND-因对-Dfinity-生态系统的贡献而获得-Dfinity-资助

敬爱的社区成员, 咱们很快乐地与您分享,咱们已取得 Dfinity Grants 生态反对! DFINITY 开发者赞助打算旨在通过为有前途的开发者和团队提供反对来促成互联网计算机生态系统的倒退,使寰球更多的开发者可能拜访和应用互联网计算机。 4EVERLAND 是 Web3 开发的根本基础设施,提供残缺、集成的解决方案生态系统。无论您是经验不足的传统 Web2 用户还是 Web3 开发者,您都能够轻松疾速地应用 4EVERLAND 在不同生态系统中的存储、计算和网络外围服务,咱们很荣幸在 Dfinity 生态系统建设方面的致力失去认可。 4EVER IC-Hosting提供DWeb托管、去中心化网关、去中心化域零碎、数据服务等产品和协定,帮忙开发者一键接入Dfinity生态,大大降低了用户应用Dfinity的门槛。它还容许所有开发人员将他们的 DWeb 与 DNS 相关联,以确保良好的可拜访性和可用性。IC Hosting相对是4EVERLAND与Dfinity生态系统之间的桥梁,让更多的Dfinity生态系统用户理解和了解4EVERLAND的使命和愿景。 除了广为人知的IC Hosting服务,4EVERLAND团队还实现了IC寰球减速网关的开发,领有4EVERLAND全球网关节点,能够为所有通过4EVERLAND IC-Hosting服务部署的网站提供寰球减速,确保不同地区不同用户的拜访。如果您对此感兴趣,请查看咱们的文档以理解其工作原理。 当然,4EVERLAND 也会持续为 Dfinity 生态做出奉献。 将 IC Hosting 纳入 4EVERLAND 定价零碎。帮忙不同生态的用户以尽可能低的应用老本跨链体验和应用Dfinity产品。为前端开发者量身定制的存储、网络和资源包。更多的…致谢再次感激 Dfinity 基金会对 4EVERLAND 的反对。 对于4EVERLAND4EVERLAND是一个集存储、计算、网络外围能力为一体的Web 3.0云计算平台。它旨在帮忙用户从 Web 2.0 顺利逾越到 Web 3.0,成为数百万 Web 3.0 开发者和应用程序的基础设施。 退出 4EVERLAND 社区: Website | Twitter | Telegram | Discord | Reddit | Medium| Email

December 29, 2022 · 1 min · jiezi

关于程序员:融云获-51CTO-年终评选中国-IT-行业政企数智办公优秀解决方案奖

今日,51CTO 主办的“2022 年第十七届中国企业年初评比”榜单新鲜出炉,融云凭借百幄数智办公平台在政企信开办公畛域的翻新计划和独特设计,斩获“2022 年度中国 IT 行业政企数智办公优良解决方案奖”。关注【融云 RongCloud】,理解协同办公平台更多干货。 据理解,中国企业年初评比已间断举办十七届,本次评比从“技术、翻新、实际”三个维度,对 2022 年度 IT 畛域技术创新与实际成绩进行评比,为企业数字化转型提供案例与选型参考,助力产业数字化改革。 随着我国信息化、数字化过程的推动,以信息展现为次要性能的办公零碎,曾经达不到晋升管理效率的作用。而以外部通信为切入点构建的办公平台正在凭借良好的应用体验、对近程办公的无效撑持等特色成为新的趋势。 融云基于即时通讯搭建数智办公平台,扭转独立建设、互相割裂的业务零碎现状,提供对立身份认证、对立音讯待办告诉以及对立业务利用入口,并凭借诸多劣势助力政企行业实现平安、高效的数字化能力建设。 首先,弱小的高并发、高可用能力。融云孵化自中国移动飞信团队,整个团队专一通信技术和业务十余年,是国内为数不多领有承载近 2 亿日活成功经验的核心技术团队之一。2014 年面市以来,融云也始终在私有云的市场中面向社交泛娱乐场景 App 提供通信云服务。能够说,高可用、高并发的通信服务始终是融云的看家本领。而在此前以通信中台联结搭档赋能协同办公产品的过程中,融云也在办公畛域有充沛积淀。不同于 ERP、OA 等绝对垂直、局部员工应用的信息化零碎能力,融云的通信模块具备全员应用、高频调用的特点,在高并发、高可用的架构能力方面人造具备性能劣势。 其次,组件化、模块化产品架构和接口灵活性。在产品架构上,施展 PaaS 服务的门路劣势,提供灵便组件服务。 融云数智办公解决方案蕴含办公、会议、通讯录、工作台、近程导办、超级群 6 个开箱即用的场景化 Kit;即时通讯 IM 和 实时音视频 RTC 2 个外围通信 PaaS 能力;流版签、在线文档、内容审核等 N 个“三方产品交融计划”。 此外,融云数智办公解决方案接口开发灵便,合乎政企对数字化规范的推广要求,并可提供定制化服务,响应政府及公共事业、公安军工、金融保险、交通、能源电力等不同客户之间轻微的需要差别。 再次,不容忽视的信息安全和信创适配。在信息安全方面,融云反对私有化部署,反对国密加密,实现了对所有支流国产化计划的适配,涵盖 300 多种组合,反对信创根底环境下的政企办公平台搭建。“百幄”还提供服务架构、客户端、网络传输、业务数据、系统管理等多维度平安保障,反对阅后即焚、电子水印、终端近程擦除、音讯存储加密、防截屏、客户端防篡改、客户端反编译等全方位平安加固。 更为重要的是,融云在国产化适配根底上,还针对国产硬件进行了专门的性能调优。百幄在绝对低配的硬件上也能够在内存占用、反应速度等方面体现更好、体验更佳。 更为重要的是,融云在国产化适配根底上,还针对国产硬件进行了专门的性能调优。百幄在绝对低配的硬件上也能够在内存占用、反应速度等方面体现更好、体验更佳。

December 29, 2022 · 1 min · jiezi

关于程序员:在国企做程序员是怎样的体验

本文曾经收录到Github仓库,该仓库蕴含计算机根底、Java外围知识点、多线程、JVM、常见框架、分布式、微服务、设计模式、架构等外围知识点,欢送star~ Github地址:https://github.com/Tyson0314/... Gitee地址:https://gitee.com/tysondai/Ja... 有读者征询我,在国企做开发怎么样? 当然是有利有弊,国企绝对稳固,加班总体没有互联网多,不过相对而言,工资收入没有互联网高,而且国企谋求稳固,往往技术栈比拟激进,很难接触新的技术,导致技术水平提高迟缓。 上面分享一位国企程序员的经验,心愿能给大家一些参考价值。 下文中的“我”代表故事主人公我校招退出了某垄断央企,在外面从事研发工程师的工作。上面我将分享一些入职后的一些心得体会。 在国企中,开发是最底层最苦B的存在,在互联网可能程序员还可能和产品经理argue,然而在国企中,根本都是领导拍脑袋的决定,即使这个需要不合理,或者会造成很多问题等等,你所须要的就是去执行,而后实现领导的工作。上面我会分享一些国企开发日常。 1、大量外部我的项目在入职前几个月,咱们都要基于一种国产编辑器培训,说白了团体的领导看市场上有eclipse,idea这样编译器,而后就说咱们外部也要搞一个国产的编译器,所有的我的项目都要强制基于这样一个编译器。 在国企里搞开发,通常会在我的项目中塞入一大堆其余我的项目插件,原本一个可能基于eclipse轻松搞定的事件,在国企须要通过2、3个我的项目跳转。但国企的我的项目原本就是领导导向,只需给领导演示即可,并不具备实用性。所以在一个我的项目集成多个我的项目后,能够被称为X山。你集成的其余我的项目会忽然出一些十分奇怪的谬误,从而导致本人我的项目报错。然而这也没有方法,在国企中搞开发,有些我的项目或者插件是被要求必须应用的。 2、外包说到开发,在国企必然是离不开外包的。在我这个公司,能够分为直聘+劳务差遣两种用工模式,劳务差遣就是咱们通常所说的外包,直聘就是通过校招进来的校招生。 直聘的劣势在于会有公司的对立编制,能够在零碎外部调动。当然这个调动是只存在于规定中,99.9%的普通员工是不会调动。劳务差遣通常是社招进来的或者外包。在咱们公司中,我的项目干活的主力都是外包。我可能因为本身原本就比拟喜爱技术,并且感觉总要干几年技术能力对我的项目会有比拟深刻的了解,所以被动要求干活,也就是和外包一起干活。一开始我认为外包可能学历都比拟低或者都不行,然而在理论干活中,某些外包的技术执行力是很强的,大多数我的项目的理论控制权在外包上,咱们负责管理给钱,兴许对我的项目的理解的深度和颗粒度上不如外包。 上次我闲暇工夫与一个快40岁的外包聊天,才发现他之前在腾讯、京东等互联网公司都有工作过,架构设计方面都特地有教训。而后我问他为什么来到互联网公司,他就说身材受不了。所以身材如果不是特地好的话,国企也是一个不错的抉择。 3、技术栈在日常开发中,国企的技术个别不会特地新。我目前接触的技术,前端是JSP,后端是Springboot那一套。开发的过程个别不会波及到多线程,高并发等技术。基本上都是些表的设计和增删改查。如果集体对技术没啥谋求,可能一天的活2,3小时就干完了。如果你对技术有谋求,能够在剩余时间去折腾新技术,自由度比拟高。 所以在国企,作为一般基层员工,个别会有许多属于本人的工夫,你能够用这些工夫去刷手机,当然也能够去用这些工夫去复盘,去学习新技术。在社会中,总有一种声音说在国企呆久了就待废了,很多时候并不是在国企待废了,而是本人让本人待废了。 4、升职空间每个研发类央企都有本人的职级序列,个别分为技术和治理两种序列。 首先,治理序列你就不必想了,那是留给有关系+有能力的人的。其实,集体感觉在国企有关系也是一种有能力的体现,你的关系可能给公司解决问题那也行。 其次,技术序列大多数状况也是依据你的工龄长短和PPT能力。毕竟,国企研发大多数干的活不是研发与这个零碎的接口,就是给某个成熟互联网产品套个壳。技术深度基本上就是一个大专生去培训机构培训3个月的后果。你想要往上走,那就要学会去PPT,学会锤炼本人的表达能力,学会如何讲到领导想听到的那个点。既然来了国企,就不要再想钻研技术了,除非你想跳槽互联网。 最初,在国企底层随着工龄增长工资增长(不当领导)还是比拟容易的。然而,如果你想当领导,那还是天时地利人和缺一不可。 5、钱在后面说到,咱们公司属于老本单位,到工资这一块就体现为钱是总部发的。工资形成分由工资+年终奖+福利组成。 1.工资形成中没有绩效,没有绩效,没有绩效,重要的事件说三遍。工资是依照你的级别+职称来决定的,公司会有严格的等级晋升制度。然而根本能够概括为混年限。年限到了,你的级别就下来了,年限没到,你天天加班,与工资没有一毛钱关系。 2.年终奖,是总部给公司一个大的总包,而后大领导依据理论状况对不同部门调配,部门领导再依据每个人的工作状况将奖金调配到集体。所以,你干不干活,活干得好不好只和你的年终奖相干。据我理解一个部门外部员工的年终奖并不会相差太多。 3.最初就是福利了,以咱们公司为例,大抵能够分为通信贴补+房补+饭补+一些七七八八的货色,大多数国企都是这样模式。 总结1、陈词滥调了。在国企,工资待遇能够保障你在一线城市吃吃喝喝和根本的生存须要没问题,当然房子是不必想的了。 2、国企搞开发,技术不会特地新,很多时候是项目管理的角色。工作内容根本体现为领导的决定。 3、国企钻研技术没有意义,想当领导,就多学习做PPT和领导搞好关系。或者当一个平庸的人,混吃等死,把工夫留给家人,也不乏是一种好抉择。

December 29, 2022 · 1 min · jiezi

关于程序员:利用mAP评估目标检测模型

在本文中,咱们将理解如何应用 precision 和召回率来计算均匀精度 (mAP)。mAP 将实在边界框与检测到的框进行比拟并返回分数。分数越高,模型的检测越精确。 之前咱们具体钻研了混同矩阵、模型准确性、精确度和召回率。咱们也应用 Scikit-learn 库来计算这些指标。当初咱们将扩大探讨以理解如何应用精度和召回率来计算 mAP。 1. 从预测分数到类别标签在本节中,咱们将疾速回顾一下如何从预测分数中派生出类标签。鉴于有两个类别,正类和负类,这里是 10 个样本的实在标签。 y_true = ["positive", "negative", "negative", "positive", "positive", "positive", "negative", "positive", "negative", "positive"]当这些样本被输出模型时,它会返回以下预测分数。基于这些分数,咱们如何对样本进行分类(即为每个样本调配一个类标签)? pred_scores = [0.7, 0.3, 0.5, 0.6, 0.55, 0.9, 0.4, 0.2, 0.4, 0.3]为了将分数转换为类别标签,应用了一个阈值。当分数等于或高于阈值时,样本被归为一类。否则,它被归类为其余类别。如果样本的分数高于或等于阈值,则该样本为阳性。否则,它是负面的。下一个代码块将分数转换为阈值为 0.5 的类别标签。 import numpypred_scores = [0.7, 0.3, 0.5, 0.6, 0.55, 0.9, 0.4, 0.2, 0.4, 0.3]y_true = ["positive", "negative", "negative", "positive", "positive", "positive", "negative", "positive", "negative", "positive"]threshold = 0.5y_pred = ["positive" if score >= threshold else "negative" for score in pred_scores]print(y_pred)y_pred['positive', 'negative', 'positive', 'positive', 'positive', 'positive', 'negative', 'negative', 'negative', 'negative']当初 y_true 和 y_pred 变量中都提供了实在标签和预测标签。基于这些标签,能够计算混同矩阵、精度和召回率。 ...

December 28, 2022 · 5 min · jiezi

关于程序员:大咖说阿里云教育|网上浙大数字化之路

咱们在谈“指标”的时候,到底在谈什么?本讲内容,节选自阿里巴巴研究员吴翰清(道哥)面向团队的外部讲话,经删减整顿后,作为【计算讲谈社】第十六讲公开分享。 https://www.youku.com/video/X... 嘉宾介绍陈文智:浙江大学信息中心主任 感兴趣的敌人,能够百度搜寻【阿里云大咖说】,观看更多精彩内容~

December 28, 2022 · 1 min · jiezi

关于程序员:程序员是短命职业吗年龄大了是不是没前途

提及程序员,给大家的更多的刻板印象,莫过于宅男、熬夜、掉发、高待遇的形象。不过,当初对于一些程序员来说更为敏感的是,往往会存在一种35岁之后的懊恼,即职业“长寿”的危险,对于程序员而言,35岁之后可能会面临待业的压力,但也并不齐全是这样的状况。那么,程序员是“长寿”职业吗?年龄大了是不是没前途? 首先,单纯从程序员这个行业的工作性质来看的话,程序员这个工作的确是比拟长寿的工作,35岁之后的确存在待业压力,究其原因次要有以下几个方面。 1、作为一名合格的程序员应聘任何岗位都须要有纯熟编写代码的能力,也是须要有肯定的工作教训积攒,没有对代码长时间的积攒和操作是很难进行纯熟进行利用我的项目开发的,什么意思,简略说就是,你没有深刻学习和实际操作,是很难看懂和进行理论开发工作的。 2、程序员须要有了肯定的根底,并且须要进行一直的学习晋升,因为编程技术的更新是突飞猛进的,速度相对来说比拟快。如果工夫长了没有新的晋升就很难在这个行业中继续的倒退,最终就会被淘汰。 3、就是程序员的工作通常是须要肯定的加班的,尽管薪资高但加班也比拟常见,如果是老手在操作不熟的状况下就须要一直加班,从工作中晋升本人。 所以,很多时候须要本人的一直的努力学习才可能更好的胜任。不是批评程序员的工作,而是单纯的心愿程序员的回升空间能更大,有趣味的程序员在更深的路上学习深造来晋升本人,同时也让本人将来的路更广阔。没趣味的就只能吃老本,或者抄抄抄,当然不是说抄不好,而是如果要做这一行不能只抄,对算法的了解,程序的架构,程序的逻辑要有本人的了解。程序员也能够往架构师倒退,也能够寻找新的更大的平台更新本人的履历,让本人的职业生涯不长寿。 在当代社会,领有技术、领有头脑的程序员不论任何时候还是比拟吃香的,而其薪酬程度个别还是要高于行业的平均水平,然而在领有高薪酬的背地,却须要接受很高的工作压力和责任,这是在每一个行业都存在的事实。 在现实生活中,也有很多年纪较大的程序员在行业中获得了优良的问题。他们通过多年的技术实际和我的项目教训积攒,把握了丰盛的技术常识和项目管理教训,并在行业中获得了很高的名誉。因而,年龄大了并不会没有前途,只有一个程序员放弃学习能力和技术实际,就能够在职业生涯中获得更好的问题。

December 27, 2022 · 1 min · jiezi

关于程序员:对架构师来说这竟然是非常重要的一种思维方式

本文首发自「慕课网」,想理解更多IT干货内容,程序员圈内热闻,欢送关注! 作者 | 慕课网 Stannum 面向故障编程是一种思维形式。对于有志于成为架构师的小伙伴,这更是十分重要的一种思维形式。总而言之,你是一个成熟的程序员了,是时候学习面向故障编程的思维了。心愿明天的分享能带给大家一些无关的思考。 01前言 作为程序员,最大的噩梦,可能就是下班时间,当我正在开心的浪着,忽然传来一阵短促的铃声,运维的共事说零碎不行了,我必须马上上线帮忙抢救...... 之前还看过一个更惨烈的新闻,有一位程序员新郎,在本人的婚礼上,还不得不上线保护零碎......等你好不容易折腾了半天,终于把零碎稳固住了,还没来得及喘口气,老板就顶着一张黑脸,收回了灵魂的拷问:为什么测试的时候没产生问题,生产环境里却出了故障?这是一个价值百万的问题。我来试着帮你答复一下:功能测试只笼罩了侧面测试(positive test),而疏忽了负面测试(negative test)整合测试没有笼罩到的某个在生产环境中引起故障的内部零碎没有进行压力测试,或者压力测试的水平与生产环境状况相差过大这个清单还能够始终写下去。你无妨检视一下你本人的测试环境和测试设计,置信你还会发现更多的有余。老板看着这个清单,脸色越来越黑。接下来,他问出了更扎心的问题:今后怎么防止相似的故障再产生?你眼睛一亮,举起你刚刚列出的测试环境毛病清单,向老板保障你会把清单上每一个毛病都改正过来!然而,这真的是最好的解决办法吗?增强测试覆盖度是十分值得提倡的做法。然而,这未必能防止生产环境中故障的产生。因为测试环境终归和生产环境不同。如果你只是为了能通过测试而进行开发,那你的产品上线之后,注定要裸露于新的危险之下。 02除了以来测试,还有什么更好的方法 明天,咱们就要来探讨一下,除了依赖测试,开发人员还有什么更好的方法来打造更加强壮的零碎。首先,咱们来思考一下,故障是什么?明天咱们不去探讨bug,因为实践上来说,有bug的零碎基本不能通过根本测试,也就不会被部署到生产环境。如果任何bug侵入到了生产环境,造成了服务的中断或零碎事变,那这个责任必然要由开发人员和测试人员一起承当。 咱们想要探讨的,是在生产环境中,经常被归因于"内部"因素或者环境因素所造成的故障。比方配置不正确的防火墙屏蔽了零碎发送的申请。比方其余客户大量拜访数据库,从而阻塞了我的零碎收回的数据库申请。比方上游零碎产生故障,忽然发送了海量的垃圾音讯等等。遇上这样的故障,咱们会说,"真是倒了霉了","明天运气不好","天有不测风云"。也就是说,咱们认为在生产环境中遇到故障是种"异样"状况,所以咱们的零碎才无奈"失常"运行。明天,我要扭转这个观点,在一个成熟的程序员眼里,生产环境中的"故障"才是"实在","异样"才是"失常"。 墨菲定律通知咱们:有可能出错的中央,就肯定会出错。在生产环境中,有可能产生故障的中央,早晚都会产生故障。作为开发人员,咱们能做的,就是利用各种设计模式和技巧,被动踊跃地去正视故障,解决故障,修复故障,将故障杀死于襁褓之中。这种思维,就叫做面向故障编程。大家跳过的坑,都是类似的。让咱们单刀直入,来看一看常见的故障模式,和它们所对应的解决办法:零碎中最单薄,最容易引起故障的中央,就是零碎中的"连接点",或者叫做"集成点"。任意socket/过程/管道/近程程序之间发送的申请和数据都有可能(所以早晚会)产生故障,从而造成零碎的阻塞或解体。让咱们仔细观察一下几种有代表性的"交接点"。 目前,大部分高级通信协议都依赖于上层的tcp协定以及socket连贯来实现通信。说到tcp协定,大家都很理解,"三次握手"也是耳熟能详客户端发送SYN到服务器监听端口以发动连贯申请,如果此时没有过程正在监听这个端口,服务器就会返回TCP reset以停止此次连贯申请。而如果服务器端过程正在监听此端口,服务器就会返回SYN/ACK示意承受连贯申请。客户端收到之后,再发送ACK,到此为止,新的连贯就建设起来了。可是在生产环境中,事件却没有这么简略。如果客户端与服务器端之间存在一道防火墙呢?因为测试环境往往是100%的外部环境,咱们简直从没在测试环境下遭逢相似的情境。防火墙就像一个路由。依据外部配置,防火墙每次见到SYN申请,都会决定到底要容许(即失常转发SYN申请去指标服务器端口),还是拦截(即返回tcp reset音讯),或是疏忽(既不转发音讯,也不返回任何音讯)。而一旦防火墙决定容许一个SYN申请通过,就会把这个容许通过的连贯记录在外部的列表中,今后遇到这条连贯上发送的音讯,就不用再做额定的考查,间接放行。听下来没有什么问题吧~然而,防火墙外部的连贯列表并不是有限增长的。当某个列表中的连贯长时间处于闲置状态(无数据传输),防火墙会把这个连贯从列表中移除。可是,防火墙并不会像一般的路由那样,发送任何reset音讯来提醒连贯两端的socket。所以客户端和服务器端都认为两者之间的连贯还是无效的。【发问:为什么防火墙不能发送一个reset音讯作为革除缓存连贯的提醒呢?答复:因为这样的reset音讯有可能被歹意用户利用,从而威逼到零碎安全性】只是,当它们相互之间试图持续发送音讯时,这些音讯会被防火墙有情的疏忽掉(既不放行,也不返回reset)。此时的防火墙,齐全成为了一个网络黑洞,默默地吃掉了这条连贯上发送的数据。作为发送音讯的一方,因为音讯被防火墙吃掉,所以无奈收到ACK。于是TCP协定就会要求从新发送这条音讯,而后又被防火墙吃掉······这样周而复始,直到超过os内核锁预设的TCP重试次数最大值,才会抛出谬误。个别内核设定的TCP重试最大值在15左右,这可能导致长达20分钟以上的重试工夫!而接管音讯的一方更惨。它只能徒劳的期待黑洞那里传来任何数据(这当然是不可能的)。 如果接管方是以阻塞式调用来进行读取数据的操作,那么实践上来说,这个接管操作可能永远地被阻塞上来.......这还只是咱们为了向大家阐明状况,解说的一个单个连贯被阻塞的情境。在生产环境中,如果咱们把例子中的客户端换成一个罕用的连接池,流量大的忙碌时段,连接池里的所有无效连贯都在不停的发送数据,所以不会造成防火墙移除超时连贯的情况产生。到了夜晚流量变少,连接池中据大部分连贯都会长工夫闲置,导致防火墙大量的移除这些超时连贯。而后第二天一早,零碎的流量又上来了,连接池中的所有连贯都被取出用来发送数据,而这些数据全副被防火墙吞掉...... 此时你的零碎会呈现大面积的无响应正告,画面太美......预计此时你也曾经接到运维小伙伴的电话了。而更糟的是,当你查看连接池这边的客户端过程,发现一切正常。当你查看服务器端的过程时,也是一切正常,网络自身也是失常状态,因为防火墙往往是由网络安全团队设置的,有些业务开发人员可能基本不晓得防火墙的存在。。。于是这个问题会成为一个悬案,往往最终都是由运维团队重启零碎来解决。这个故障情境,简直不可能通过晋升测试覆盖度来检测。咱们只能在开发阶段被动的去躲避这些可能产生(所以早晚会产生)的连贯层面的故障。针对零碎中这些容易产生连贯故障的"连接点",咱们给大家举荐两个最常见的办法来升高故障带来的影响,从而提醒零碎的稳定性。第一个办法就是Timeout。Timeout的原理很简略。为了防止连贯故障造成申请方和应答方陷入长时间的阻塞,一旦发送的申请超过肯定工夫还没有返回后果(不论是胜利还是失败的后果),咱们就停止这个申请。这样咱们才能够及时的发现失败的连贯。因为古代零碎大量应用分布式构造,零碎中的"连接点"不再是一个两个,而是相当大的一个数字(尤其是微服务架构),还会一直减少。 零碎中常见的问题就是Timeout机制的缺失。我会倡议大家将Timeout的逻辑包装成一个可复用的实现。这样就能够一次实现,到处调用,缩小了代码重复性。同时,也能够升高其余开发人员应用Timeout的难度,促使大家多多应用Timeout来爱护零碎。另一个经常和Timeout搭配应用的办法,就是Circuit Breaker(翻译成熔断器吧)。这个词自身的意思,就是指电路中的保险丝,在电流过大时,熔断本人,爱护整条电路的平安。当咱们的申请长时间无响应,导致Timeout之后,咱们须要怎么解决这个未实现的申请呢?大家的第一个反馈肯定是重试,兴许刚刚应答方太忙,所以才不能及时处理咱们的申请。我再试一次,兴许应答方就能够回答了呢。然而我劝你审慎。因为作为开发人员,咱们无奈猜想导致申请Timeout的起因。如果是之前所讲的防火墙黑洞的例子,那你重试一辈子也是没用的。即使造成申请Timeout的起因确实是暂时性的,可修复的,比方是因为应答方临时忙碌所造成的,你也要留神重试的频率和次数。如果自觉的频繁大量重试,只会给应答方造成更大的流量压力,岂但对你本人的申请没帮忙,还间接影响了整个零碎的稳定性。而Circuit Breaker是一个能够帮到你的设计模式。你能够为有可能Timeout的操作增加一个Circuit Breaker,在初始状态下,Circuit Breaker处于连贯的状态(保险丝完整,电路连通),咱们要求Circuit Breaker发送的申请,都会被失常的发送进来。而当后续的申请开始呈现Timeout或申请的失败的情况时,Circuit Breaker会记录下失败的次数或者频率。当失败次数或频率超过一个阈值时,Circuit Breaker就会转换到断开状态(保险丝熔断,电路断开)。此时,Circuit Breaker不会执行任何新的申请,而是在接到申请之后立刻返回一个谬误,告知申请的发起方,目前连贯不失常,请等一等再尝试。在通过一段时间的熔断之后(这里又用到了Timeout机制),Circuit Breaker会转换到一个非凡的"半连贯"状态。此时Circuit Breaker会把收到的申请发送进来,如果发送胜利,那么Circuit Breaker会马上转入连贯状态,恢复正常工作。而如果这次申请发送失败或再次Timeout,Circuit Breaker就会立即转回断开状态,直到断开状态再次Timeout。由此可见,Circuit Breaker这种机制,就是在连贯故障起因未知的状况下,试图用一种"聪慧"的策略来主动调整"连接点"的流量,以便在零碎稳定性和可恢复性之间获得一个均衡。当咱们面向故障编程时,一个很大的艰难就是故障的未知性。在开发层面,咱们很难去判断故障产生的起因。所以咱们不得不"戴着脚镣跳舞",在未知的状况下抉择最好的策略。Circuit Breaker机制就是一个很好的例子。另一个可能给生产环境带来可怕结果的故障和集群无关。在古代零碎设计中,为了加强可用性,或是为了加强可扩展性以应酬更大的流量,咱们往往在一个集群中运行多个服务过程,而后在集群上通过一个Load Balancer,负载均衡器,将发送到集群上的申请尽量均匀的调配到集群中的各个服务过程下面去。这种集群架构,在大多数状况下,能够很无效地帮忙咱们进步整个零碎的强壮度,因为咱们有"备胎"了,咱们集群里有的是节点,所有节点一起死光光的概率是很小的啊。没错,这个假如通常是对的。可是,这个架构对于某一种故障十分敏感。那就是在大流量压力下所造成的节点解体。如果咱们在服务过程的实现中有个缺点,会造成内存透露。那么,当整个集群的流量增大时,每一个节点上分担的流量也很大,大流量可能放慢内存透露的速度,使得某一个节点因为系统资源耗尽而解体。而后会产生什么呢?因为集群中少了一个节点,其余节点就必须分担更多的流量。别忘了,大部分节点运行的都是同样版本的服务。所以这个要命的内存透露很可能存在于所有节点中。于是剩下的节点在接受了更大的流量之后,也会更容易耗尽系统资源而解体,而后留下更少的节点别离承当更大的流量...... 不言而喻,这是一个恶行循环。从第一个节点解体开始,这个故障可能像洪水一样,迅速蔓延至整个集群从而导致整个集群解体。咱们管这种故障叫做连锁反应故障。听起来有点可怕,是不是?那么咱们怎么能力躲避这个故障呢?首先,改良你的测试方法,尽量在测试环境中发现相似内存透露,或是潜在死锁这样的bug是很重要的。因为这些bug都对流量很敏感。一旦把这种bug部署到生产环境,无论过程是否跑在集群中,都相当于在生产环境中埋了一个地雷。越是须要零碎保持稳定的大流量情境,这个地雷越容易爆炸。不过正如咱们一开始所说的,bug不是咱们明天议论的重点。写了几万行代码,不免蕴含几个bug...... 即便这样的bug存在,咱们还有能够躲避连锁反应故障的办法。首先,如果集群的上游零碎总是在一次申请失败之后,就疯狂地向集群发送重试申请,那么集群的流量压力很快就被搞大了。如果说大流量是由能够产生利润的用户申请所带来的,那咱们违心接受。而如果流量是因为愚昧的零碎重试申请所造成的,并且还把咱们的集群搞垮了,那就太不值得了。所以, 在开发中应用下面介绍的Circuit Breaker机制,不只能够爱护你正在开发的服务组件,还很有可能间接的爱护了上游的其余服务组件。你在开发上做的一点额定致力,可能援救了整个零碎。相同的,你在开发上偷的一点懒,可能会坑死上游的兄弟团队呢。除此之外,最无效的躲避连锁反应故障的办法,就是实现一个能够主动伸缩的集群。尤其是当你在cloud容器上运行节点时,这样的主动伸缩集群性能就更容易实现了。当集群中的一个节点解体,咱们最好尽快主动的启动一个新节点(或者重启解体的节点)。这样至多能够在短时间内,尽量保障集群的尺寸不要萎缩的太厉害,从而防止了集群中余下的节点承当(它们这个年龄无奈接受的)急剧增大的流量累赘。 到此为止,咱们梳理了连接点故障,和连锁反应故障两种在生产环境中可能造成重大影响的故障,以及Timeout,Circuit Breaker,主动伸缩集群这三种能够用来被动躲避故障的设计模式。这只是面向故障编程思维中的冰山一小角。如果今后有机会,心愿还能够和大家持续探讨其余的模式和技巧。明天说了这么多,其实最重要的一点,就是心愿大家扭转思维,明确故障才是生产环境中的"失常",一个零故障的生产环境是不存在的。产品经理兴许不会把躲避这些故障作为产品需要写在文档中,然而作为开发人员,咱们本人要做到成竹在胸,其实这些都是一个优良的零碎所应该实现的隐形的需要。 欢送关注「慕课网」,发现更多IT圈优质内容,分享干货常识,帮忙你成为更好的程序员!

December 27, 2022 · 1 min · jiezi

关于程序员:融云CEO董晗国产化进程加速助推政企数智办公平台深化发展

政策催化加疫情助推下,办公线上化迅速实现着市场教育曾经成为以后的支流趋势。而随着“国产化”成为各行业数字化倒退路线上的关键词,政企办公畛域国产代替的倒退确定性更加凸显。关注【融云寰球互联网通信云】理解更多 近期,融云与艾瑞征询联结公布的《2022 年中国政企数智办公平台行业钻研报告》(下简称《报告》)显示,2021年数智办公平台市场规模已达 74 亿元,增速达 22.1%。随着挪动化办公浸透加深带来的第一轮建设和政企外部需要降级疏导的第二轮建设,预计市场在将来 3 年将以 20% 的复合增速增长。 《报告》进一步提出,将来数智办公平台会朝着挪动化、智能化和集约化方向倒退,并且连接内部客服类零碎,实现内外协同的行业趋势。 联合国产化过程减速的大背景,融云 CEO 董晗认为,这将催生一个微小的政企办公市场,咱们将正式迎来政企数智办公的黄金时刻。 就在往年下半年,融云正式推出了面向政企的数智办公平台产品“百幄”。 “百幄”的推出,对老牌通信厂商融云来说意味着什么?而进军政企办公畛域,融云手上又有何“屠龙宝剑”?中国软件网记者特邀融云 CEO 董晗,带来一次深度的独家访谈。 深耕细作,外需内因独特驱动“百幄”诞生融云“百幄”的推出并非偶尔。事实上,早在 2018 年左右,融云便开始以通信中台能力与搭档单干赋能政企协同办公场景。多年积淀,深刻业务,才形成了现在“百幄”的集大成劣势。 过来多年,政企组织均领有了肯定的信息化根底,但不同期间各具阶段性特色的零碎建设积攒下来,导致的后果之一便是“零碎和软件越来越多,而数据却流动不起来”。这也是数字化转型的原因和指标,就是要实现数据和零碎的交融。 正因如此,依据《报告》,基于即时通讯搭建数智办公平台,扭转独立建设、互相割裂的业务零碎现状,提供对立身份认证、对立音讯待办告诉以及对立业务利用入口,成为目前政企办公平台的支流趋势。 外有客户需要,内有融云积攒,双重驱动之下,融云“百幄”应运而生。 融云“百幄”数智办公平台,以高频应用的外部通信切入,以工作台为入口,围绕政企办公畛域波及到的人、工作、常识、业务、场景,将各类办公服务串联在一起,构建沟通协同、组织治理、利用治理和平安治理四大模块,打造具备利用聚合能力的对立办公平台,造成政企数字化降级的驱动器,助力政企行业实现平安、高效的数字化能力建设。 信创为基,全面适配国产化的体验降级2022 年 9 月 28 日,国资委 79 号文全面领导信创产业倒退进度,提出 2027 年前实现党政两大外围体系及金融、石油、电力、电信、交通、航空航天、医院、教育等次要行业的国产代替工作。 这对行业来说是一道明确的前行指引,将激活大量的国产代替需要,也是融云动摇入局政企办公畛域的强心针。“在国产化方面,融云筹备已久。”董晗说。 目前为止,融云曾经实现了对所有支流国产化计划的适配,涵盖芯片、操作系统、数据库、中间件等 300 多种组合,反对信创根底环境下的政企办公平台搭建。 “百幄”还提供服务架构、客户端、网络传输、业务数据、系统管理等多维度平安保障,反对阅后即焚、电子水印、终端近程擦除、音讯存储加密、防截屏、客户端防篡改、客户端反编译等全方位平安加固。 更为重要的是,国产化适配只是融云的基本功之一。在此基础上,“咱们还多做了一步,就是对国产硬件的性能调优,‘百幄’在绝对低配的硬件上也能够在内存占用、反应速度等方面体现更好、体验更佳。”董晗介绍道。 灵便组件,反对政企搭各自的“变形金刚”说到“百幄”的产品构造,除沟通协同、组织治理、利用治理和平安治理四大模块之外,董晗用 1+6+2+N 来高度精炼地概括“百幄”的灵便组件“独家秘方”: 1 就是百幄 App,是数智办公平台的最终状态。 6 指的是 6 个场景化 Kit,即办公、会议、通讯录、工作台、近程导办、超级群 6 个最罕用的组件。 2 指的是融云传统劣势,外围通信 PaaS 能力即时通讯 IM 和 实时音视频RTC。 N 是“三方产品交融计划”,次要指在与办公和通信非强关联的功能模块上,由融云甄选第三方业余服务,通过接口调用或 OEM 的模式取得相干能力,比方流版签、在线文档、内容审核等。 “1+6+2+N,让客户取得对立的服务,同时也领有肯定的抉择空间。” 这是融云身为 PaaS 服务商的门路劣势,对融云来说,模块化、组件化、个性化的产品架构设计是刻进“骨子”里的基因。 ...

December 26, 2022 · 1 min · jiezi

关于程序员:Webpack开发环境要如何搭建

本文首发自「慕课网」,想理解更多IT干货内容,程序员圈内热闻,欢送关注! 作者| 慕课网精英讲师 三水清 本文将包含装置 Node、NPM、WebPack 开发环境,我应用的开发 IDE 是 VScode。因为 Webpack 理论是用 Node.js 写的,所以首先来介绍下 Node.js 的装置。 装置 Node.js首先进入 Node.js 的官网,抉择对应零碎的下载包进行下载安装,对于 windows 用户,间接下载安装包装置即可,如果是 Macos 用户,举荐应用 brew 进行装置。接下来别离介绍下 Node.js 的版本治理和包管理工具。 Node.js 版本治理Node.js 版本泛滥,包含稳定版和开发版,可能不同的我的项目须要的 Node.js 版本不同,这里我举荐大家装置 8.9 以上版本,对于曾经装置了 Node.js 的敌人,能够应用 nvm(windows 版本)对 Node.js 进行进行版本治理,(另外阿里有个 tnvm ,也是治理 Node.js 版本的,减少了 alinode 版本系列的 Node.js)。 Node.js 包管理工具Node.js 之所以这么风行,离不开宏大的社区建设,这里第一功绩就是 NPM 团队的奉献,应用 Node.js 写的代码,能够打包公布到 JavaScript 包治理平台 npmjs.com(这个寄存包的中央个别也被称为仓库)上,当咱们我的项目须要应用某个包(模块)时,能够间接应用包管理工具来装置(下载)对应的包,咱们也能够收费注册一个账号,公布本人的公共包和公有包供其他人应用。 NPM 是围绕着语义版本控制(semver)思维而设计的,咱们在软件版本中碰见的:rc、1.x.x、alpha、beta等名词都能够在 semver.org 失去解释介绍,简略来说标准是主版本号.次版本号.订正号(MAJOR.MINOR.PATCH): 1.主版本号:当你做了不兼容的 API 批改;2.次版本号:当你做了向下兼容的功能性新增;3.订正号:当你做了向下兼容的问题修改; NPM 中应用了一个命名为package.json的文件作为一个 NPM 包的形容文件,package.json蕴含了包的根本信息(名称、版本号、形容、作者等)和依赖关系,例如: ...

December 26, 2022 · 2 min · jiezi

关于程序员:AI-2022浪潮奔涌百舸争流

编者按:2022年已靠近序幕,但技术的倒退永不闭幕。许多人说,2022是生成式AI的一年。这一年里,咱们见证了Stable Diffusion和DALL-E2等AI图像编辑/绘画工具的暴发,也目击了ChatGPT狂热席卷寰球。 但AI技术和产业的倒退,远不仅仅是聚光灯下的生成式AI / AIGC 能够全权代表的。 咱们为大家精选了三篇绝对全面主观的深度回顾文章及报告(附报告全文下载),总结波澜翻涌的2022,蓄力整装待发的2023! 编辑 | 小白 编译 | 岳扬 Forbes 对2022年AI 畛域的预测,哪些真正实现了?Forbes每年都会对人工智能畛域的发展趋势做一个预测。2021年12月,Forbes公布了一份对于2022年人工智能畛域的10个预测清单。一年过来了,是该预测最终答案揭晓的时刻了。Forbes 在2021年底对2022年的10大瞻望预测包含: 语言人工智能将占据首要地位,在NLP畛域取得融资的初创公司比任何其余类别的人工智能都多Databricks、DataRobot和Scale AI都将上市至多三家气象AI初创企业无望成为独角兽将呈现弱小的视频人工智能工具将呈现一个领有超过10万亿个参数的NLP模型中美人工智能畛域的单干和投资将简直进行多个大型云/数据平台将发表新的合成数据打算多伦多将成为硅谷和中国之外的世界上最重要的人工智能核心“负责任的人工智能”将开始从一个含糊的、无所不包的术语转变为一套可操作的企业实际强化学习将成为一种越来越重要和有影响力的人工智能范式以上哪些预测真正照进事实了呢? 小编基于Forbes的回顾,整顿了各项瞻望的“事实答案"及其起因,请查收! https://s.caixuan.cc/LPOGquIq 斯坦福大学2022年AI指数报告斯坦福大学近期公布了2022年AI指数报告(Artificial Intelligence Index Report 2022)。该包含跟踪、提炼、总结并可视化了AI相干的重要数据,以便为寰球的AI相干政策制定者、钻研人员、高管等提供主观、公正、权威的数据参考。报告内容笼罩研究进展、技术体现、AI伦理、政策、AI教育等方面,外围亮点总结如下: 人工智能畛域的私人投资飙升,投资集中度加剧:2021年,人工智能的私人投资总额约为935亿美元,是2020年私人投资总额的两倍多。而新取得融资的人工智能公司数量持续降落,从2019年的1051家公司和2020年的762家公司降至2021年的746家公司。2020年,有4轮价值5亿美元以上的融资,2021年,有15轮。语言模型比以往能力更强,但也更容易产生偏见:大语言模型发明了技术基准的新记录。但新数据显示,大模型也更容易从训练数据中产生偏差。2021年开发的一个2800亿参数的模型与2018年被认为是最先进的1.17亿参数的模型相比,其偏差减少了29%。随着工夫的推移,这些零碎的能力明显增强,但随着它们能力的加强,其偏见的重大水平也在减少。对人工智能伦理的钻研正在衰亡:自2014年以来,对于人工智能的公平性和透明度的钻研呈爆炸式增长,在与伦理学无关的会议上发表的相干文章减少了五倍。算法的公平性和偏见曾经从单纯的学术谋求转变成为一个具备宽泛影响的支流研究课题。近年来,有相干行业背景的钻研人员在以伦理学为重点的会议上发表的论文同比增加71%。人工智能变得老本更低,性能更高:自2018年以来,训练一个图像分类零碎的老本降落了63.6%,而训练效率进步了94.4%。其余工作也呈现训练老本升高、但训练工夫放慢的趋势,如举荐零碎,物体检测和语言解决,并有利于更宽泛的人工智能商业利用。Data, data, data:各项技术基准的模型技术后果越来越依赖于应用额定的训练数据来获取最先进的后果。截至 2021 年,斯坦福大学AI指标报告中的 10 个基准测试中有 9 个最先进的 AI 零碎通过了更多的训练。这一趋势有利于可能取得大量数据集的私企。寰球对于人工智能的立法越来越多:对 25 个国家人工智能立法记录的指数分析表明,蕴含 “人工智能”的提议被通过成为法律条文的数量从2016年的仅1个增长到2021年的18个。西班牙、英国和美国在2021年通过的人工智能相干法案数量最多,各通过了3项。机械臂变得越来越便宜:一项人工智能指数考察显示,在过来五年中,机器人手臂的中位数价格下降了46.2%——从2017年的每只手臂4.2万美元降落到2021年的2.26万美元。对于机器人的钻研变得更容易取得,且负担得起。获取报告全文:https://s.caixuan.cc/LJ5Ew4O0麦肯锡-AI 2022及过来5年倒退回顾麦肯锡的报告则从AI在企业中利用的角度,回顾了2017-2022年,AI在企业中的利用渗透率、AI对业务的影响和企业在AI畛域的投入规模等系列变动。这篇报告单后果基于对寰球~1,500名参与者的调研,外围后果总结如下: 相较于2017年,人工智能的采用率减少了一倍多。与此同时,机构应用的自然语言生成和计算机视觉等人工智能技术,也翻了一番,从2018年的均匀1.9个减少到2022年的均匀3.8个。对人工智能的投资也在减少。例如,五年前,在应用人工智能的组织中,40%的受访者示意,超过5%的数字化估算用于人工智能,而当初,超过一半的受访者示意投资程度曾经很高了。展望未来,63%的受访者示意,投资将在将来三年内继续减少。人工智能价值施展的具体畛域曾经产生了变动。2018年,制造业和封控被受访者认为是人工智能发挥作用最大的两个畛域。现在,受访者认为人工智能利用影响最大的是市场营销和销售、产品和服务开发、策略和企业财务,受访者示意人工智能在供应链治理方面的老本效益最高。尽管人工智能的应用有所增加,但从2019年麦肯锡首次获取这些数据到当初,任何与人工智能利用危险防备相干的投入并没有大幅减少。人工智能畛域领导者正在扩充竞争劣势,差距越来越大。高绩效企业比其余企业更有可能遵循某些高级扩大实际,例如应用标准化工具集创立可生产的数据管道,并应用端到端平台进行与人工智能相干的数据迷信、数据工程和外部的利用程序开发。人工智能高绩效企业的受访者示意,他们企业将至多20%的数字技术估算用于人工智能相干技术的可能性是同行的近八倍。这些数字估算占其企业收入的比例比其余企业要大得多:人工智能高绩效企业的受访者报告其企业将超过20%的企业支出用于数字技术的可能性是其余受访者的五倍以上。人工智能数据科学家依然特地稀缺,在麦肯锡调研中,认为科技人才短缺依然没有失去缓解。培训和技能晋升是招聘的常见代替计划,在寻找人工智能人才方面,所有受访者中最受欢迎的策略是对现有员工进行培训。麦肯锡还发现以人工智能为重点的团队外部的多样性程度都有很大的改良空间,这些团队中女性员工的均匀比例仅为27%,多数种族或族裔的均匀比例来仅为25%。获取报告全文:https://s.caixuan.cc/LQQh1llR

December 26, 2022 · 1 min · jiezi

关于程序员:传奇程序员-John-Carmack-怒斥-Meta微软将永久禁用-IEOkta-私有代码库被入侵|思否周刊

40S 新闻速递传奇程序员 John Carmack 来到 Meta,训斥公司低效NIST 倡议 2030 年底前淘汰 SHA-1 加密算法微软将于 2023 年 2 月 14 日永恒禁用 IEGoogle 苹果 Mozilla 单干构建新浏览器基准测试Okta 公有代码库被入侵,源代码被盗微软发表禁止应用其云服务进行挖矿,除非有书面许可新款苹果 MacBook Pro 将在 2023 年初推出Valve 付费给 Steam Deck 软件的开源开发者Apache Traffic Server 存在拒绝服务破绽Spring Cloud 2022.0.0 正式公布,代号 "Kilburn"Gccrs 代码合并到 GCC 13 主支Firefox 108 公布Linux Mint 21.1 公布行业资讯传奇程序员 John Carmack 来到 Meta,训斥公司低效据报道,游戏行业老兵约翰·卡马克(John Carmack)刚刚从Meta Platforms的虚拟现实部门到职,起因是他对该部门的迟缓过程感到不满,而且与 Meta 创始人马克·扎克伯格(Mark Zuckerberg)在策略方面存在一致。卡马克在他的到职备忘录中示意,他长期以来都对Meta虚拟现实部门蹩脚的经营效率感到丧气,他感觉本人素来都没有足够的能力向正确的方向施加影响。 NIST 倡议 2030 年底前淘汰 SHA-1 加密算法美国国家标准与技术研究院(NIST)发表 SHA-1 算法曾经到达寿命起点,倡议使用者尽快迁徙到 SHA-2 或 SHA-3。NIST 的平安专家称,明天日益弱小的计算机很容易破解 SHA-1 算法,它应在 2030 年 12 月 31 日之前被淘汰。SHA-1 是在 1995 年作为美国联邦材料解决规范(FIPS PUB 180-1 公布的,Google 在 2017 年发表了对 SHA-1 哈希算法的首个胜利碰撞攻打。所谓碰撞攻打是指两个不同的信息产生了雷同的哈希值,过后实现碰撞攻打须要消耗大量计算资源。但到了 2020 年钻研人员将攻打老本降至 4.5 万美元,并预测将来老本会越来越低。 ...

December 25, 2022 · 2 min · jiezi

关于程序员:2023年了useEffect你真的会用嘛

2023年了~useEffect你真的会用嘛前言这篇文章是我依据a-complete-guide-to-useeffect本人总结进去的一些重点~ 依照程序顺次如下: React单向数据流的渲染Effect的执行机会不要对Effect扯谎:依赖数组要怎么设置应用setState和useReducer将上报行为和状态更新解耦函数是否能够作为Effect的依赖呢?同时咱们能够在浏览的时候时刻问本人以下问题: 如何用useEffect模仿componentDidMount生命周期? 如何正确地在useEffect里申请数据?[]又是什么? 我应该把函数当做effect的依赖吗? 为什么有时候会呈现有限反复申请的问题? 为什么有时候在effect里拿到的是旧的state或prop?每一次渲染都有它本人的props和statefunction Counter() { const [count, setCount] = useState(0); return ( <div> <p>You clicked {count} times</p>+ <button onClick={() => setCount(count + 1)}> Click me </button> </div> );}上述例子中,对于<p>You clicked {count} times</p>中的count,可能react的初学者会认为其是响应式的,也就是会主动监听并且更新渲染。 但实际上,它只是一个一般的变量count,没有任何的data bounding。咱们在每一次调用setCount的时候,实际上是React应用新的count值来重复渲染组件。第一次是0,第二次是1,以此类推。。。 除了变量,那么事件处理函数呢? function Example() { const [count, setCount] = useState(0); function handleAlertClick() { setTimeout(() => { alert('You clicked on: ' + count); }, 3000); } return ( <div> <p>You clicked {count} times</p> <button onClick={() => setCount(count + 1)}> Click me </button> <button onClick={handleAlertClick}> Show alert </button> </div> );}咱们设想一下: ...

December 24, 2022 · 5 min · jiezi

关于程序员:翻译图像到Base64字符串转换

1 概览在这个简短的教程中,咱们将介绍如何应用 Apache Common IO 包和 Java 8 原生类 Base64 将图片文件转成 base64 字符串,而后把 base64 字符串再转成图片。 这个操作也能够利用到任何二进制文件或者二进制数组中。当咱们须要以 json 格局传输二进制内容的时候,例如从挪动app程序传到到 REST 端时,它十分有用。 2 Maven 依赖增加一下依赖到 pom.xml 中: <dependency> <groupId>commons-io</groupId> <artifactId>commons-io</artifactId> <version>2.11.0</version></dependency>你能够在 maven 地方仓库找到 commons-io 包的最新版本。Maven Central. 3 将图片转成 base64 字符串首先,咱们将文件内容转成 byte 数组,而后应用 Java 8 的 Base64 类编码这个数组。 byte[] fileContent = FileUtils.readFileToByteArray(new File(filePath));String encodedString = Base64.getEncoder().encodeToString(fileContent);encodeToString 字段是 A-Za-z0-9+/ 汇合中的字符串,解码器回绝该汇合之外的任何字符。 4 将 base64 字符串转成图片当初咱们有一个 Base64 字符串了,让咱们把它编码回去成二进制文件并且写入文件。 byte[] decodedBytes = Base64.getDecoder().decode(encodedString);FileUtils.writeByteArrayToFile(new File(outputFileName), decodedBytes);5 测试咱们的代码最初,咱们能够通过读取一个文件,将其编码为 Base64 字符串,而后解码回一个新文件来验证代码是否正确工作: ...

December 23, 2022 · 1 min · jiezi

关于程序员:跳出程序员思维如何应对上手英文工具站的几点误区

这次给大家带来程序员如何应答上手英文工具站的几点误区,帮忙大家跳出程序员思维,一起出海赚美刀 ~ ----- 小小分割线 ----- 误区一:认为加入了几次对应我的项目训练营,就能够赚到美刀。这样想,往往很难达到预期。 我的认识: 加入训练营,对于新人来说只是开始,永远不是开始盈利。 放弃长期主义,放弃复利,保障这个赛道值得的心态。 你能够想想,谷歌 SEO 都没有奏效这么快,何况生财航海,何况还是英文工具站这个我的项目。 ----- 小小分割线 ----- 误区二:没有技术的人,不须要技术就能挣钱。有技术的人,往往感觉技术能扭转所有,这容易产生错觉 我的认识: 商业我的项目中,技术尽管很重要,但并不相对。 比方咱们这次英文工具站,技术只是实现网站的一种形式和工具。 没有技术的人,能够找外包去做,也能够找一个成型的零碎(WordPress 等)去搭建。 所以技术只是在这个我的项目中重要的一环,但不是所有的闭环。 ----- 小小分割线 ----- 误区三:大部分工夫花在做网站上,而不是花在钻研怎么卖网站上。大家可能想说没做进去怎么卖?其实这是不对的。 我的认识: 如果都没想过或者钻研过怎么卖?或者没尝试去卖过,比方间接做一个落地页,去卖卖看,而后看数据做决策,而不是自觉的先去做。 最好的 MVP 应该是像生财有术说过的卖空气,我了解为是最快实现商业闭环的验证。 而后依据数据去决策是否要做这个“空气”,拿英文工具站来说,基本上做的货色没有多少技术含金量。 它也不像做一个 Open AI 这种高含金量的技术实现。顶多是接入API接口,封装一层做一些结构化或场景化的性能。 所以,还是跟之前跟大家分享的一样,大家多花点工夫在钻研怎么卖上。 这里还是再分享下之前在群外面认识哈: 我发现大家根本都是工程师,爱搞钱的工程师,这就是工程师中的爱折腾 20% 了。这曾经很不错了 但看大家的打卡,广泛的关注点在技术实现,在说如何实现这个货色碰到具体的问题。 而没有花很多工夫钻研这个货色,是不是用户想要的,是不是 GTM(Go To Market)的。 同样,也没有花很多工夫钻研流量,包含冷启动形式、继续获取流量的形式、流量的竞争度等等。 比方假如你曾经做出了这个货色,而且跟竞品差不多品质状况下,下一步怎么办?下一步如何获客 & 赚到第一块钱... 所以倡议小伙伴们,二八准则: 没开始做的小伙伴:80% 精力多多钻研,要做的货色对应的是否 GTM 和 流量维度的竞争正在做的小伙伴:20% 精力也多多钻研如上所述更多相干文章,请看原文链接:https://bysocket.com/thinks-o... ----- 小小分割线 ----- 误区四:本身的需要肯定是好需要吗?不肯定 我的认识: 首先本身的需要肯定是好需要吗?得看怎么界定这个好。依照商业来说,最终的目标是盈利。那么程序员用户相干的需要,不肯定是好需要。 因为程序员相干的流量其变现难度很大,最好的程序员变现的形式,就是卖课。 之前做过海内程序员相干的网站,最多就是挂程序员相干课程的返佣链接。 但不可否认本身的需要,也有好的点。其就是你是用户,你更懂用户需要的差异化和翻新点等。 但这只是产品价值维度的思考,其产品商业维度呢,也须要更多思考思考下。 ----- 小小分割线 ----- ...

December 23, 2022 · 1 min · jiezi

关于程序员:小程序上线发布后实现版本自动更新用户无感知

间接上代码,用的都是小程序的API。 /** * 检测以后的小程序是否是最新版本,判断是否须要下载、更新以后小程序 */function checkUpdateVersion() { //判断小程序版本是否能够应用小程序更新机制API if (wx.canIUse('getUpdateManager')) { //创立 UpdateManager 实例 const updateManager = wx.getUpdateManager(); //检测版本更新 updateManager.onCheckForUpdate(function(res) { // 申请完新版本信息的回调 if (res.hasUpdate) { //监听小程序有版本更新事件 updateManager.onUpdateReady(function() { //调用 applyUpdate 利用新版本并重启 ( 此处进行了自动更新操作) updateManager.applyUpdate(); }) updateManager.onUpdateFailed(function() { // 新版本下载失败 wx.showModal({ title: '曾经有新版本喽~', content: '请您删除以后小程序,到微信 “发现-小程序” 页,从新搜寻关上哦~', }) }) } }) } else { wx.showModal({ title: '溫馨提醒', content: '以后微信版本过低,无奈应用该性能,请降级到最新微信版本后重试。' }) }}PS: 将来的你,肯定会感激明天拼命致力的本人!

December 23, 2022 · 1 min · jiezi

关于程序员:提升方法比努力重要不懂这几点再多的努力也白费

本文首发自「慕课网」,想理解更多IT干货内容,程序员圈内热闻,欢送关注! 日常写代码,日常改bug,日常和产品经理battle.... 2022年程序员职场口头禅:“我太难了!” 这还不算完,行业内卷,熬夜加班996,真是“难上加难!” 为了改变现状,不少程序员走上了学习新常识学习新技术的“晋升”路,然而,长此以往,身材和精力却开始变得疲惫不堪。迅速增长的体重和越来越高的发际线,日常看似空虚饱和的工作,也夹杂着越来越多的香甜和无奈。 越来越多的程序员开始埋怨:“我都这么致力了,为什么不仅生存还是过不好,技术也没有实质性的增长呢?” 究其根本原因,就是万恶的死循环。 程序员最大的“故障”就是会陷入技术的死循环,而技术往往在一直的迭代更新,接触的面无限,导致面临新的问题、新的技术,就会很难冲破本人。 联合我接触的一些大神们和前辈们走过的弯路,明天给大家总结了他们在本身晋升过程中的7个切忌: 1、切忌一开始就从 “XXX根底”,“XXX全把握”开始学习起,思考工夫老本,更好的办法,从业务场景动手,以战带学,能更好的学习和使用新技能。2、切忌一味追新,疏忽了技术的深度。就像练习做不同我的项目的性能,然而只谋求量不保证质量,最初发现只是技术的搬砖者。例如前端要不JS学好学通,在学习其它会有很大帮忙。还有肯定要深刻一个残缺的我的项目,我的项目一直的迭代,一直刨析本人写的代码,能力晓得本人之前的设计有什么问题,以及当前如何防止。3、切忌只做一个技术,比方:做前端的只做前端,不论后盾、UI、产品、运维等;做到一专多能,也就是在业余上有纵深,还领有多畛域的视线。利于沟通交流,晋升全局观。4、切忌只学技术,不谈业务,到头来你会发现“技术”只是“业务”的小弟,所有你所认为的很牛的技术,在不对称的业务场景中,等于零;对本人工作的业务畛域有足够多的理解,这样能更明确客户的诉求以及缺失的方面,能力针对性的做页面设计,数据库设计,技术选型等,晋升解决问题的能力。多看一些优良的网站,大佬的我的项目设计,多去思考他们为什么这么设计与实现。5、切忌做技术不做治理,或者做治理不做技术,技术是安身立命,治理是冲破本人的阶层,走向独立 + 财产自在的必经之路;6、切忌一个人八面玲珑,一个人管公司所有的人,一个人管所有大大小的事件,这是不可能的,因为人的精力有限,把次要精力放在外围的事件上。7、切忌通宵 + 有限的加班,能够让你在团队中立于不败之地,相同这只会搞垮你的身材,让你更早来到公司;身材是反动的成本,合理安排工夫,晋升本身能力8、晋升,办法永远要比致力重要。心愿这7个切忌能给你启发,更无效的自我晋升,同时沉下心不间断学习与钻研,找对方向,从在深度、思维、逻辑、设计、业务、治理等方面不断深入打磨,置信向上冲破也只是工夫问题。 欢送关注「慕课网」,发现更多IT圈优质内容,分享干货常识,帮忙你成为更好的程序员!

December 22, 2022 · 1 min · jiezi

关于程序员:一网打尽Linux核心多面性升职面试必备

本文首发自「慕课网」,想理解更多IT干货内容,程序员圈内热闻,欢送关注! 作者| 慕课网精英讲师 韦恩001 说起 Linux 的一个霸气点,不能不再提到它的免费性啊。“贪心”的微软 Windows 可是很贵的,一个操作系统要几百美元。再来几个如 Office 那样动辄几百美元的软件,难怪比尔·盖茨笑不动了。咱们的 Linux 却是收费的,就是这么狂拽酷炫。那什么是 Linux 的多面性呢?第一面曾经说了:收费。那么其它方面呢?首先,如果你之前看过一些 Linux 零碎的应用截图,那么你会发现,相比 Windows 零碎的易识别性,Linux 零碎可是“千奇百怪”。 因为 Linux 是开源的么,你能够定制。如果你还没看过 Linux 的应用截图,你可能没太多概念,就可能会问这样一个问题:“Linux 比 Windows 难看还是难看啊?”毕竟当今时代,“颜值”是很重要的。咱们必须器重内"芯",也要重视装扮得体。这个问题也难答复,因为你会发现,有些人的 Linux 零碎界面很好看、慷慨,貌似比 Windows 难看;但有些人的 Linux 界面就板滞一些,没有那么壮丽。咱们很容易扭转 Linux 的外观,尽管你说 Windows 也能够随便扭转外观啊。然而 Windows 扭转的不过是色彩,图标之类,不是“彻底”的扭转。不管你装置的是哪一个 Linux 发行版(Ubuntu、CentOS、Fedora、RedHat、Mint等等),你都会发现有两种应用 Linux 的形式:命令行界面(相似 DOS 操作系统);图形界面(相似 Windows 操作系统)。命令行界面命令行界面对于初学者来说,是有点“令人生畏”的,因为它看上去并不那么“敌对”。能够见下图:命令行界面的背景色彩个别是彩色,不过也不肯定。咱们能够配置其余色彩。不过有一点特地令 Linux 初学者头痛的就是:命令行界面里鼠标简直不起作用,基本操作都是用键盘来实现。那你要问了:“难道我必须要用这么‘坑爹’的命令行界面吗?”当然不是啦。之前不是介绍了,Linux 下有两种模式吗?还有一种图形界面模式。这是 Linux 的两面性,有点相似奥斯卡得奖影片《双面俏佳人》。当初个别的 Linux 发行版,默认装置的都是图形界面了,而图形界面中你也能够调出命令行界面来操作,也就是咱们平时所说的“终端”(Terminal),不是电影《终结者》(Terminator)。我很喜爱 Ubuntu 的终端,默认的色彩是有点紫红色的,很美:相比黑不溜秋的传统命令行界面,紫红色的美物是不是令人爱不释手呢。我每次用 Ubuntu 的终端情绪都很好。那问题来了:既然有那么不便壮丽的图形界面,为什么咱们还要用命令行界面或终端呢?为什么要“一入终端深似海,一夜回到解放前”呢?那是因为命令行很弱小。很多时候,特地是 Linux 程序员(你也马上要成为了… 快趁还没沦为 Linuxer 时在 Windows 上多玩几盘 Dota、LOL 吧),不必终端还真不行。有些工作,就是要用命令行能力做,而且快捷不便。命令行也是晋升“B格”的利器,之后的课程会看到这一点。图形界面对于从 Windows 操作系统转过来的初学的敌人来说,Linux 的图形界面就敌对得多了。而且也很类似,都是用鼠标来操作窗口,而左上角或右上角都会有一个叉叉供你敞开窗口。然而 Linux 却存在不少种图形界面。尽管品种不少,然而它们都基于一个程序:X(是的,就叫 X)。X 程序是 Linux 图形界面的基石,不禁让我想起了《X 战警》里的 X 传授。在 X 程序之上,插入了另一个程序,叫做“桌面管理器”。桌面管理器的作用是治理窗口,以及它们的外观、选项等等。留神:在Windows 下并没有“桌面管理器”这个概念。尽管咱们能够扭转 Windows 的外观,但很局限不是吗?咱们只能换换 Windows 的“皮肤”。对于 Linux,基于不同的“桌面管理器”,外观和性能就天壤之别。支流的桌面管理器依照常规,咱们不会一次性把所有的桌面管理器都列出来,因为数目很多。咱们只介绍四个最罕用的:GnomeKDEXFCEUnity(曾经进行开发)下面的 Gnome、KDE 和 Unity 是三个应用最宽泛的桌面管理器,性能全面,比拟耗系统资源。而 XFCE 是一个轻量级的开源桌面零碎,使用率仅次于 KDE 与 Gnome,能够运行在配置不高的电脑上。如果你的电脑能够运行 Windows 零碎,那么运行 Unity、KDE 或 Gnome 应该是不成问题的。如果电脑不是那么弱小,能够试试 XFCE。为什么咱们要说到桌面管理器(或者称为“桌面零碎”)呢?因为 Ubuntu 给了咱们一些抉择的余地,而咱们须要从中抉择一个最适宜本人的。Ubuntu 18.04 默认用的是 Gnome 桌面管理器(我刚开始用 Ubuntu 的时候,用的是 Ubuntu 10.04,那时还没有 Unity,是 Gnome。从 Ubuntu 11.04 开始,Ubuntu 团队自研的 Unity 取代了 Gnome 作为默认桌面管理器。从 17.10 版开始又改回了 Gnome,因为 Ubuntu 放弃了 Unity 桌面管理器我的项目)。 ...

December 21, 2022 · 2 min · jiezi

关于程序员:测试工程师要如何规划自己的职业生涯

本文首发自「慕课网」,想理解更多IT干货内容,程序员圈内热闻,欢送关注! 作者| 慕课网精英讲师 陈磊 想要成为一名合格的测试工程师并不是一件容易的事件,然而想要划水的人生其实也不难。浏览这篇文章的同学想来肯定是不甘于划水的人生的,那咱们持续往下看:软件测试的人生从测试用例开始说到软件测试,那么咱们不得不从测试的基本功测试用例的设计开始。 那么首先咱们应该晓得测试用例是什么,这里咱们援用 IEEE Standard 610 (1990) 的测试用例的定义开始:A set of test inputs, execution conditions, and expected results developed for a particular objective, such as to exercise a particular program path or to verify compliance with a specific requirement.(IEEE Std 829-1983) Documentation specifying inputs, predicted results, and a set of execution conditions for a test item.为特定指标开发的一组测试输出,执行条件和预期后果,例如执行特定程序门路或验证是否合乎特定要求。(IEEE规范829-1983)指定测试项目的输出,预测后果和一组执行条件的文档。软件测试用例的定义形容得十分分明,测试用例就是一组有测试输出、执行条件和预期后果的汇合。那么如何设计这样的一个测试用例呢? 我置信你从任何一个软件测试的大学教材外面都能看到,例如边界值法、等价类法、因果图法、场景法期待。只有一提到等价类办法,我置信很多小伙伴都会想起书本上的三个整型变量组成三角形的例子。等价类设计测试用例比拟适宜解决有很多条件组合的输出方面的测试用例的设计,场景法适宜对批量工作、定时工作等业务逻辑进行测试用例设计,边界值适宜于一个输入框的测试用例设计,同时边界值还能够和正交试验办法进行组合应用,因果图办法比拟适宜有互相束缚的性能的测试用例设计。无论你是一个测试经理还是一个测试工程师,甚至你是一个测试开发工程师,你也须要晓得这些迷信的办法,这些迷信的形式是软件测试中输出项的无效的设计办法,在工作中应用这些迷信的办法设计测试用例,能够使你的测试工作更加得牢靠和可信。抉择技术还是抉择业务随同着工作年限的提供,所有人都在面向于业务或者技术的一个抉择。 测试工程师这下面是齐全不同的两条路,一个是走纯业务路线,即测试工程师。测试工程师对本人负责业务很理解,对所有细枝末节的流程都很分明。在一个团队中,产品经理对每次新 feature 很理解,因为是他设计的,他有可能也对一些和这些新设计的 feature 相关联的一些业务逻辑也很分明,然而他对上上一次乃至更久之前的迭代的 feature 有可能并不理解。开发工程师对本次开发的性能很相熟,并且对和本次迭代的feature有交加的一些内容理解,然而对历史版本的逻辑并不分明。这外面唯独业务测试工程师对某一个被测试零碎所有的 feature 都很理解,这样他能力更好地评估一个零碎的品质。随着业务测试工程师的致力,缓缓地会变成测试负责人或者一个对应业务畛域的专家。测试开发工程师如果要抉择测试开发这条路,那么你会走上一个半测试、半开发的路,在这条职业生涯的路上,你会一直地coding,一直从新定义测试。从自动化脚本的撰写到测试框架的设计、开发和保护,从测试执行到测试平台的研发和搭建,而后缓缓走向高级测试开发工程师的路线,推动我的项目级别的继续集成、继续交付、继续部署的过程,推动工程效率的一直进步。最初会走上测试架构师的角色,这个时候你有可能更加贴合理论,更加的底层。 ...

December 20, 2022 · 1 min · jiezi

关于程序员:我与外企上司的四个职场故事

题目:我与外企下属的四个职场故事我在目前这家任职的外企从事软件开发工作,曾经整整十五年了。本系列文章通过介绍我与本人下属的四个职场小故事,想和大家分享在外企里,一个程序员除了埋头晋升本人技术之外,还有哪些其余的软技能和能力须要去着力造就。 故事1 – 程序员要去德国出差3个月,但食住行等问题迟迟没有搞定我已经在公司加入了一个很重要的寰球开发我的项目,须要去德国总部出差三个月。公司差旅流程规定,如果出差工夫短于两周,能够住公司协定酒店;超过这个长度,就必须本人想方法找更便宜的住宿了,比方 Airbnb 上找。 而我过后得出差三个月,显然不可能住公司协定酒店了。住宿得我本人想方法。我只好硬着头皮,在 Airbnb 上找离公司比拟近的民宿。不巧的是 Airbnb 上离我公司总部 Walldorf 左近的很多房源,房东公布的音讯都是德文版的,我只能依据 Google Translator 来浏览。 好不容易找到让本人还比较满意的房源,Airbnb 站内私信房东,却迟迟得不到回复,真是让我烦躁不已。 除了住宿外,交通也是一个难题。我只有两个抉择,要么租车,每天开车上下班,要么骑自行车上下班。如果是骑自行车上下班,又一道难题摆在我背后:上哪去搞一辆自行车?如果自行购买一辆新自行车,德国本地动辄成千盈百欧元一辆的自行车,其价格让我望而生畏。如果在跳蚤市场购买一辆二手自行车,又回到和 Airbnb 上租房子时遇到同样的艰难。 除了住宿和交通外,吃饭问题也困扰着我。早餐能够轻易吃点面包干粮解决,午饭在 SAP 食堂解决,晚餐就只有本人想方法了。德国民宿大部分房东是不容许房东在本人房间里生火做饭的,再说德国家庭的烹饪形式和咱们国内大同小异,不应用天然气,而是用电力,比方电磁炉。就算容许我本人做饭,在德国超市连根本的米饭和面粉都购买不到。 那么三个月每天晚上都下馆子?想想我就头皮发麻。 总之,我曾经买好了去德国的机票,然而随着腾飞日期的一天天邻近,很多事件还没有落实,而且迟迟没有停顿,让我很是烦心。没有停顿的起因出在我本身:过后我认为这所有的筹备工作,不应该由我来做。我心田保持认为,作为程序员,在三个月出差这件事件上,我只须要在技术层面做好筹备,飞抵德国之后,能够立刻和德国共事对接,而后动工就行了。至于其余的事件,应该有公司专门部门的共事去操心。 起初3月的一天早晨,曾经很晚了,我收到了正在上海出差的我的老板的一封邮件。收到邮件后第一件事是看了下发送工夫(起初才晓得我的老板是白天忙完工作后,早晨回到酒店写的这封邮件),而后把邮件注释粘贴到word里一看,2000多个words. 过后我的心田是简直解体的。 邮件里我老板对我过后一段时间的行为(次要就是我十分消极看待出差前的筹备工作这种行为)进行了剖析和敲打,一条条论述进去,我看了之后示意心悦诚服。我记得我老板举了一个具体的例子,他老板的老板每次从德国来成都出差时,很多琐碎的事件也是本人亲历亲为,并不是像我臆想的那样,所有事件都有专门的助理全副搞定。 起初我老板出差回来后,又当面和我就这件事件持续聊过,我从中领悟到的一点就是:在SAP哪怕只是开发岗位,也相对不意味着只须要埋头专研技术,写好代码就足够了。是否具备business acumen,是辨别一个业余的企业应用软件开发人员,和一个纯正码农的标记之一。 最初在我老板的帮助和德国当地共事的热心帮忙下,我勉强搞定了在德国三个月的住宿和交通问题,登上了飞往德国的航班。我在德国三个月出差工作期间,又会产生哪些意料之外的事件呢?敬请期待我下一个故事的分享。

December 19, 2022 · 1 min · jiezi

关于程序员:OSCS开源安全周报第22期-NuGet-仓库中被发现-135-万个包含钓鱼地址的组件包

11月以来信息通信软件供应链平安社区发展了“软件供应链优秀成果案例”征集评审流动,在 12 月 16 日的后果公示中,墨菲安全软件供应链平安治理平台本次胜利入选自主研发翻新成绩。这是对墨菲平安长期专一在软件供应链平安畛域的成绩认可,咱们也将增强行业技术交换分享,继续推出优良产品和实际成绩,助力我国软件供应链平安治理程度的高质量倒退。 墨菲安全软件供应链平安治理平台墨菲供应链平安系列产品是通过多维度的资产扫描,深度辨认资产中应用的内部依赖,联合全、准、快的危险知识库,精确辨认破绽危险和开源许可证危险,并提供业余、便捷的危险修复计划,帮忙企业高效的治理供应链平安危险。 在整体解决方案方面,墨菲平安会帮忙客户建设一整套软件供应链平安治理框架,从管理体系和管制体系帮忙客户至上而下建设软件供应链平安体系,解决开源组件、开源软件和闭源软件的平安危险。 事先:次要以预防为主,在引入组件和编写代码时对组件和代码进行卡位和检测。 事中:次要以处理为主,在编译、部署阶段对我的项目进行扫描,并通过卡位形式避免我的项目携带危险上线。 预先:次要以应急为主,针对已上线我的项目进行危险预警,发现危险软件及时止损。 为实现管制体系,墨菲平安提供各类根底技术能力的撑持,包含:公有源治理、资产盘点、破绽检测、破绽修复等等。 对于墨菲平安墨菲平安是一家为您提供业余的软件供应链平安治理的科技公司,外围团队来自百度、华为、乌云等企业,公司为客户提供残缺的软件供应链平安治理平台,围绕SBOM提供软件全生命周期的平安治理,平台能力包含软件成分剖析、源平安治理、容器镜像检测、破绽情报预警及商业软件供应链准入评估等多个产品。为客户提供从供应链资产辨认治理、危险检测、安全控制、一键修复的残缺控制能力。同时产品能够极低成本的和现有开发流程中的各种工具一键买通,包含 IDE、Gitlab、Bitbucket、Jenkins、Harbor、Nexus 等数十种工具无缝集成。 > 微信公众号搜寻“墨菲平安”,关注咱们/申请试用➕

December 19, 2022 · 1 min · jiezi

关于程序员:Lanuch-threejs-with-甜甜圈-大帅老猿threejs特训

WebGL简介WebGL(全写Web Graphics Library)是一种3D绘图协定,这种绘图技术标准容许把JavaScript和OpenGL ES 2.0联合在一起,通过减少OpenGL ES 2.0的一个JavaScript绑定,WebGL能够为HTML5 Canvas提供硬件3D减速渲染,这样在浏览器里更流畅地展现3D场景和模型了,还能创立简单的导航和数据视觉化。WebGL应用须要图形学常识,对WebGL编程能够通过js和glsl两种语言。如果想间接应用WebGL,使用者能够采纳着色器(Shader)用来实现图像渲染的,但对于老手来说,Shader还是艰难的。这时咱们能够应用Three.js来简化咱们对底层图形学的开发常识,更快的上手3D开发过程。 用Threejs实现一个甜甜圈demo github地址安转依赖 npm ciimport * as THREE from 'three';import { OrbitControls } from "three/examples/jsm/controls/OrbitControls";import { GLTFLoader } from "three/examples/jsm/loaders/GLTFLoader";import { RGBELoader } from 'three/examples/jsm/loaders/RGBELoader';let mixer;const scene = new THREE.Scene();const camera = new THREE.PerspectiveCamera(45, window.innerWidth / window.innerHeight, 0.01, 100);const renderer = new THREE.WebGLRenderer({ antialias: true });renderer.setSize(window.innerWidth, window.innerHeight);document.body.appendChild(renderer.domElement);camera.position.set(5, 10, 25);const controls = new OrbitControls(camera, renderer.domElement);scene.background = new THREE.Color(0.2, 0.2, 0.2);// const ambientLight = new THREE.AmbientLight(0xffffff, 0.2);// scene.add(ambientLight);const directionLight = new THREE.DirectionalLight(0xffffff, 0.4);scene.add(directionLight);// const boxGeometry = new THREE.BoxGeometry(1,1,1);// const boxMaterial = new THREE.MeshBasicMaterial({color: 0x00ff00});// const boxMesh = new THREE.Mesh(boxGeometry, boxMaterial);// scene.add(boxMesh);new GLTFLoader().load('../resources/models/zhanguan.glb', (gltf) => { // console.log(gltf); scene.add(gltf.scene); gltf.scene.traverse((child)=>{ // console.log(child.name); if (child.name === '2023') { const video = document.createElement('video'); video.src = "./resources/yanhua.mp4"; video.muted = true; video.autoplay = "autoplay"; video.loop = true; video.play(); const videoTexture = new THREE.VideoTexture(video); const videoMaterial = new THREE.MeshBasicMaterial({map: videoTexture}); child.material = videoMaterial; } if (child.name === '大屏幕01') { const video = document.createElement('video'); video.src = "./resources/video01.mp4"; video.muted = true; video.autoplay = "autoplay"; video.loop = true; video.play(); const videoTexture = new THREE.VideoTexture(video); const videoMaterial = new THREE.MeshBasicMaterial({map: videoTexture}); child.material = videoMaterial; } if (child.name === '大屏幕02' || child.name === '操作台屏幕') { const video = document.createElement('video'); video.src = "./resources/video01.mp4"; video.muted = true; video.autoplay = "autoplay"; video.loop = true; video.play(); const videoTexture = new THREE.VideoTexture(video); const videoMaterial = new THREE.MeshBasicMaterial({map: videoTexture}); child.material = videoMaterial; } if (child.name === '环形屏幕') { const video = document.createElement('video'); video.src = "./resources/video02.mp4"; video.muted = true; video.autoplay = "autoplay"; video.loop = true; video.play(); const videoTexture = new THREE.VideoTexture(video); const videoMaterial = new THREE.MeshBasicMaterial({map: videoTexture}); child.material = videoMaterial; } if (child.name === '柱子屏幕') { const video = document.createElement('video'); video.src = "./resources/yanhua.mp4"; video.muted = true; video.autoplay = "autoplay"; video.loop = true; video.play(); const videoTexture = new THREE.VideoTexture(video); const videoMaterial = new THREE.MeshBasicMaterial({map: videoTexture}); child.material = videoMaterial; } }) mixer = new THREE.AnimationMixer(gltf.scene); const clips = gltf.animations; // 播放所有动画 clips.forEach(function (clip) { const action = mixer.clipAction(clip); action.loop = THREE.LoopOnce; // 停在最初一帧 action.clampWhenFinished = true; action.play(); });})new RGBELoader() .load('../resources/sky.hdr', function (texture) { // scene.background = texture; texture.mapping = THREE.EquirectangularReflectionMapping; scene.environment = texture; renderer.outputEncoding = THREE.sRGBEncoding; renderer.render(scene, camera);});function animate() { requestAnimationFrame(animate); renderer.render(scene, camera); controls.update(); // if (donuts){ // donuts.rotation.y += 0.01; // } if (mixer) { mixer.update(0.02); }}animate();最初退出猿创营 (v:dashuailaoyuan),一起交流学习 ...

December 18, 2022 · 2 min · jiezi

关于程序员:iPhone-15-高端版本万元起步-Arm-确认对华禁售先进芯片设计产品谷歌禁推-ChatGPT-类聊天产品|思否周刊

40S 新闻速递新 iPhone 要跌价!iPhone 15 高端版本万元起步Chrome 浏览器正式反对 Passkeys,Google 迎接无明码时代DeepMind 推出 AI 编剧,一句话可生成几万字剧本GitHub 公布人工智能驱动的企业版 CopilotWeb bug 跟踪零碎和测试工具 Bugzilla 我的项目发表将来打算Arm 确认对华禁售先进芯片设计产品,阿里等中企将受影响苹果 iOS 16.3 Beta 公布:引入对物理平安密钥的反对苹果正思考勾销第三方浏览器强制应用 WebKit 引擎的限度 谷歌以“名誉危险”为由发表不推出 ChatGPT 类聊天产品Linux 6.1 公布,初步反对 RustKubernetes 1.26 正式公布nginx 1.23.3 主线版公布Vite 4.0 公布,下一代的前端工具链行业资讯新 iPhone 要跌价!iPhone 15 高端版本间接万元起步12 月 11 日音讯,据泄密者走漏,iPhone 15 Ultra 的入门机型价格将高达 1299 美元,全系列不同机型的配置差别也会更大。至于新机的设计,泄密者说,苹果仍在开发不同的原型,可能是圆形边缘的模型,从而会抛开苹果自 iPhone 12 系列以来始终应用的平边设计,此外机身将由钛合金而不是不锈钢外壳制成。 Chrome 浏览器正式反对 Passkeys,Google 迎接无明码时代Google Chrome 的产品经理 Ali Sarraf 在一篇博文中发表,稳定版 Chrome 108 曾经反对通行密钥 Passkeys。应用通行密钥登录网站的 Chrome 用户能够无需输出明码,而是应用指纹、人脸等生物辨认认证来受权登录。同时,用户还能够应用 Passkeys 跨设施登录。Google 打算将来将 API 反对引入原生 Android 利用,让 Android 用户也能够应用 Passkey 来登录 App。 ...

December 18, 2022 · 2 min · jiezi

关于程序员:计算机网络-第一章-TCP协议的三次握手

视频教程: 一条视频讲清楚TCP协定与UDP协定-什么是三次握手与四次挥手_哔哩哔哩_bilibili视频教程: TCP三次握手和四次挥手_哔哩哔哩_bilibili1、TCP协定和UDP协定TCP协定和UDP协定都工作在传输层。1)TCP协定TCP协定是基于连贯的,相当于打电话,只有对方接起来电话,通话才会开始。TCP协定的长处是稳固牢靠,实用于对网络通信品质较高的场景,比方传输文件,发送邮件,浏览网页等。2)UDP协定UDP协定是基于非连贯的,相当于寄一封信,信寄出去后,不论对方是否收到信(是否丢包),也不论多封函件是否按程序达到(数据包乱序)。UDP协定的长处是速度快,然而可能产生丢包,实用于对实时性要求较高然而对大量丢包没有要求的场景,比方语音通话,视频直播。2、TCP协定的连贯SYN包,指 synchronization,意为同步。ACK包,指 acknowledgment,意为确认。FIN包,指 finish,意为终止。1)三次握手三次握手是建设连贯的过程。三次握手的实质是为了解决网络信道不牢靠的问题,为了在不牢靠的信道上建设牢靠的连贯。(1)第一次握手客户端会随机初始化序号,将该序号搁置在TCP首部的【序号】字段中,同时把SYN标记地位1,示意SYN报文。接着把第一个SYN报文发送给服务端,示意向服务端发动连贯,该报文不蕴含应用层数据,之后客户端处于SYN-SENT状态。(2)第二次握手服务端收到客户端的SYN报文后,首先服务端也随机初始化本人的序号,将此序号搁置在TCP首部的【序号】字段,其次把客户端的序号+1并搁置在TCP首部的【确认号】,而后把SYN标记位和ACK标记位都置1。接着把该报文发送给客户端,该报文也不蕴含应用层数据,之后服务端处于SYN-RCVD状态。(3)第三次握手客户端收到服务器报文后,还须要向服务器发送一个应答报文。首先该应答报文的TCP首部ACK标记位为1,其次把服务端的序号+1并搁置在TCP首部的【确认号】。最初把应答报文发送给服务端,==这次报文能够携带服务端的数据,==服务端收到应答报文后,连贯建设。 (4)DDOS 攻打实际上,如果黑客一直向服务端发送SYN包又不进行下一步,服务器须要一直记住对方的序号和本人新生成的序号,最终导致服务器奔溃,这就是典型的DDOS攻打。因而,服务器罗唆不保留本人的序号,通过服务器的IP地址和端口等公有信息进行算法运算失去序号。2)四次挥手处于连贯状态的客户端和服务端都能够被动发动敞开连贯申请。(1)第一次挥手假如客户端被动发动敞开连贯申请,此时客户端向服务端发送一个TCP首部的Fin标记位被置1的报文,即FIN报文,之后客户端本人进入终止期待1状态。客户端向服务端发送 FIN 时,仅仅示意客户端不再发送数据了然而还能接收数据。 (2)第二次挥手服务端收到Fin包后,向客户端发送一个ACK包,服务端进入了敞开期待状态。 (3)第三次挥手客户端收到服务端的ACK报文后,进入终止期待2状态。服务端此时还能够发送未发送的数据,而客户端还能够接收数据。服务端不再发送数据时,向客户端发送一个Fin包,并进入最初确认状态。 (3)第四次挥手客户端收到服务端的Fin包后,向服务端发送ACK包,并进入超时期待状态。服务端收到ACK包后,进入 closed 状态,至此服务端实现连贯的敞开。客户端期待 2MSL 一段时间后,主动进入 closed 状态,至此客户端实现连贯的敞开。 MSL 指的是 Maximum Segment Lifetime:一段 TCP 报文在传输过程中的最大生命周期。2MSL 即是服务器端收回为 FIN 报文和客户端收回的 ACK 确认报文所能放弃无效的最大时长。 3、为什么不是两次握手?为了避免曾经生效的申请报文,忽然又传到服务器引起谬误。假如是两次握手,客户端向服务器发送SYN包(A),因为某些起因,导致SYN在网络中滞留。客户端在期待了一段时间后,发现没有收到服务端的确认报文,会从新发送SYN包(B),B包胜利达到了服务端,服务端发送确认报文给客户端,连贯建设。一段时间后,服务器收到了A包,服务器发送确认报文给客户端,连贯建设。此时呈现了问题,客户端认为只建设了一个连贯,而服务端认为建设了两个连贯,造成了状态不统一。在三次握手的状况下,服务端没有收到客户端第三次握手的ACK包,就不会认为连贯建设胜利。4、为什么不是四次握手?因为通信不可能100%牢靠,而下面的三次握手曾经做好了通信的筹备工作,再减少握手,并不能显著进步可靠性,而且也没有必要。

December 17, 2022 · 1 min · jiezi

关于程序员:计算讲谈社第十五讲|云端即时渲染下一代互联网的算力基座

下一代互联网是什么?其算力基座又是什么?【计算讲谈社】第十五讲上线,蔚领时代创始人兼CEO郭建君、蔚领时代数字人事业部总经理费元华、蔚领时代《春草传》总导演王小伍、阿里巴巴研究员吴翰清(道哥)携学员开展分享探讨。https://www.youku.com/video/X... 讲师介绍郭建君:蔚领时代创始人兼CEO,领有10余年云游戏及云渲染技术研发利用行业教训。2019年1月创立北京蔚领时代科技有限公司。蔚领时代成立以来,郭建君率领团队与行业搭档单干共建私有云的云游戏生态;携手米哈游打造了行业标杆产品《云·原神》;往年8月,蔚领时代推出中国首款电影级云原生游戏《春草传》,衍生数字人演员“春草”正式出道。 费元华:蔚领时代数字人事业部总经理,领有20年以上游戏开发及互联网产品教训,曾参加《流星蝴蝶剑》(昱泉国内)《神迹OL》(盛大网络)等我的项目,隆重圈圈3D AVATAR产品,主导《战国online》等开发多款大型PC端游戏产品,开办乐加网络、百芝龙智慧科技公司。相熟游戏开发,同时波及物联网、AR/VR、人工智能等跨畛域。 王小伍:蔚领时代《春草传》总导演。 毕业于北京电影学院摄影业余,从事十年影视行业,创作多部影视作品;独立影评人,近年来沉闷于网络自媒体行业,致力于电影科普,全网领有百万粉丝。 吴翰清(道哥):阿里巴巴研究员,阿里巴巴、淘宝、支付宝平安体系创建者,《白帽子讲Web平安》作者,MIT TR35 中国互联网安全畛域入选第一人,阿里云城市大脑晚期建设者之一,目前工作于大规模计算和人工智能畛域。 学员介绍王刚(玄瞳):阿里云AI产品专家,北京大学计算机硕士,深度强化学习和动作辨认方向。 陈新(骏维):阿里云高级产品专家,深耕CDN畛域。 于开丞(杰柯):达摩院算法专家,瑞士联邦理工博士,深耕视觉模型和AutoML,阿里星。 谭冠群(君扬):阿里云高级产品专家,深耕平安畛域。 肖子彤(栖风):阿里云技术专家,秘密计算方向,DEFCON CTF寰球总决赛冠军,阿里星。 江波(云联):阿里云高级产品专家,深耕云计算金融畛域。 范佳莹(嘉壹):阿里云高级产品专家,深耕产业智能-数字医疗方向。 袁华良:国内视频AI产品晚期建设者,深耕视频云和人工智能联合畛域。 【大咖说】是什么? 简介:【大咖说】是阿里云推出的内容版块,由“大咖”主讲,提供理念、思维、方法论、趋势等内容,模式有嘉宾演讲、对话访谈等,意在通过传递“信息和观点”,表白对将来的洞察。(可百度搜寻【阿里云大咖说】,观看更多精彩内容~) 【计算讲谈社】是什么? 简介:【计算讲谈社】是由阿里云【大咖说】推出的子系列,由吴翰清(道哥)主讲、联结八名学员和各领域专家,以“讲”和“谈”的模式,独特探讨“计算将来”;主张从本源上思考问题,敢于对固化“常识”或“教训”提出质疑,意在培养人才和积淀有价值的内容。

December 16, 2022 · 1 min · jiezi

关于程序员:教你轻松理解MQTT1概述

引言看到MQTT,你可能认为是“MQ Telemetry Transport”的缩写。 这个说法放在以前可能是对的,但当初就有待商讨了。目前的MQTT不是任何单词的缩写,就单指MQTT。请留神,MQ也不是首字母缩写词,而是IBM旗下一产品的名称,并不代表“Message Queue”。 背地的起因是该协定的利用曾经不限于遥测传输。MQTT当初曾经将眼光放在了整个物联网畛域。在成为物联网通信畛域黄金规范的路线上,MQTT正吸引着寰球越来越多用户的关注。然而,目前只有多数在线资源能够为咱们提供该协定的残缺指南,这也是作者撰写本系列文章的目标——为任何想深刻理解IoT星球的人提供MQTT的具体介绍: 1. 概述 2. Pub/Sub的工作原理 3. 保障QoS 4. 将MQTT连贯到Kafka 5. 应用MQTT与实在设施进行交互 本文是MQTT简介系列的第一篇。通过本文,咱们将疾速浏览MQTT的一些根本术语。 MQTT工作原理简介假如有如下设置: 发布者:咱们房间里的一支温度计,公布带有“room1”标签的“温度”话题。 订阅者:咱们房间里的一台笔记本电脑,订阅带有标签“room1”的“温度”话题。 中间人:在咱们房间的服务器上运行。 话题:“温度”。 在“温度”话题下标记:“room1”。 温度音讯的残缺门路是: 温度计向中间人公布话题“温度”和标签“room1”的温度音讯。中间人查看谁订阅了话题和标签,而后将音讯路由到笔记本电脑。笔记本电脑收到音讯。Pub/Sub在典型的客户端 - 服务器模式下,客户端和服务器须要相互了解,是强耦合零碎示例。可问题是,服务器自身须要保护客户端注册表,这使得它变得复杂、容易出错并且不知何故会呈现单点故障。 MQTT则应用Pub/Sub模式来解耦这个零碎。 高级架构由三个组件组成:发布者——中间人——订阅者。发布者公布话题,订阅者订阅话题,而中间人则介于两者之间,次要负责过滤音讯并确保订阅者只失去它想要的音讯。咱们也称MQTT中间人的发布者和订阅者为“客户”,示意他们都是中间人的客户; 因而,在此定义中,“服务器”是中间人。中间人通过话题和话题下的标签过滤音讯。话题是可用于对音讯进行分组的“类型”或“类”,标签是话题的“子类型”或“子类”。 一旦发布者在话题和/或标签下向中间人公布音讯,只有订阅雷同话题和/或标签的订阅者能力从中间人获取音讯。在这种状况下,发布者和订阅者都须要晓得他们正在解决的话题和/或标签。 音讯队列MQTT能够被视为齐全为物联网消息传递量身定制的音讯队列。与Kafka等分布式系统中的传统音讯队列零碎相比,MQTT在空间和工夫上都具备轻量级和更疾速的特点。 MQTT更偏向于应用内存来存储吞吐量非常低的音讯,并要求任何实现都反对动静增加/删除话题,以实现超低提早和高灵活性。 你始终能够将MQTT与其余音讯队列(如 Kafka)连接起来应用。 服务质量 (QoS)顾名思义,QoS定义了中间人为客户(发布者和订阅者)服务的工作品质。客户端在与中间人通信时须要通知中间人QoS的级别。 QoS共有3个级别: 0,或“最多一次”——音讯能够传递,也可不传递,但不应有反复: — 发布者的音讯应该传递给中间人一次或零次; — 订阅者将从中间人那里收到音讯一次或零次; 1,或“至多一次”——必须传递音讯,但能够反复: — 发布者的音讯应该传递给中间人一次或屡次; — 订阅者将从中间人那里收到一次或屡次音讯; 2,或“刚好一次”——必须传递音讯,并且只能传递一次: — 发布者的音讯必须传递给中间人一次; — 订阅者必须从中间人那里取得一次音讯。 一个小广告:我最近始终在做的事我最近开发了一个名为Shifu的开源物联网开发框架,我很想听听您的意见。Shifu是一个高度可扩大的框架,容许开发人员轻松管制物联网设施。Shifu通过CRD来扩大Kubernetes的性能,容许开发人员拜访物联网设施的全副性能,甚至能够编写设施自身不具备的新性能。这简化了传统物联网应用程序的开发,大大提高了物联网应用程序的效率、品质和可重用性。* 欢送大家登录https://github.com/Edgenesis/...,通知我你的想法! 本文由边无际受权公布

December 16, 2022 · 1 min · jiezi

关于程序员:开启微服务我们需要配齐多少设施

本文首发自「慕课网」,想理解更多IT干货内容,程序员圈内热闻,欢送关注! 作者| 慕课网精英讲师 陈于吉吉 微服务是一整套体系,并不是仅仅代码上业务开发,为了开发的完整性,咱们到底得配置多少治理的设施。在这篇文章中,咱们先理解这些设施的作用是什么,为何会存在和须要这些设施。 一个国家人多了就须要有一个政府,由这个政府组织起来各个行政部门负责起来各种行政职能,对企业人民进行治理和服务,保障企业的失常生产,人民的水深火热。在微服务体系也是如此,一个公司的微服务零碎宏大多了,也是须要有对应撑持组织对业务模块进行服务和治理。上面咱们就一起来看下,一个中大规模的公司,想要让微服务可能 “Drop in 业务开发”,须要多少的治理撑持。 咱们须要配齐多少设施1.1 服务注册发现当咱们开始应用微服务架构时,咱们会将一个大的单体利用拆分成多个独立的小服务,而后必须满足每个小的服务之间可能互相进行通信,假如咱们没有服务发现的撑持,咱们只能用硬编码的形式将须要通信的服务的网络信息写在调用方的服务中。然而,这样会呈现一系列的问题:通信形式例如网络地址有变动时无奈及时告诉消费者;在生产环境中,每个服务个别都会部署多个实例以实现负载平衡,当要对一组服务减少或缩小实例,都得去相应改变消费者的编码。要解决这个问题,就必须引入一个服务注册发现机制,服务生产者将本人的信息注册到服务注册核心,服务消费者再从注册核心进行拉取。这样,即便生产者的信息产生了变动,消费者也无需改变配置。在微服务架构中,服务发现组件是一个十分重要的组件,目前罕用的组件有以下几种:ZooKeeper;EureKa;Consule;Nacos。1.2 配置核心配置核心,顾名思义,就是用对立治理我的项目中所有的配置零碎。在我的项目中,咱们能够简略了解程序 = 代码 + 配置。咱们在程序中须要对一些参数进行自定义的配置,但咱们并不想把这些配置间接写在代码中,为了不便批改,并让零碎有更好的扩展性,咱们会将这些配置写在工程的配置文件中。在单体利用中,咱们能够把所有的配置项集中在某个问题或某几个文件中,然而在微服务体系中,因为微服务泛滥,服务之间又是互相调用相互依赖,为每个服务进行配置文件就显得十分的难以治理。如果没有配置核心,咱们强行将配合文件写在各个工程中会有以下几个的问题:配置文件过于扩散,难以治理;配置文件无奈辨别环境,可能咱们的代码工程会运行在几套环境中,可能每个环境的参数各不相同,就得靠手动进行保护;动态化配置,每次批改都必须通过批改文件并且重启工程来进行失效;配置文件无奈追溯,除了用代码自身的版本治理,否则无奈进行追溯。配置核心的思路就是把我的项目中各种配置,各种的参数都集中到一个中央进行对立的治理,并提供规范的接口。当服务须要获取配置,就通过接口进行拉取,当配置核心的配置和参数有了变动,也能实时同步到各个服务。也就是说,配置核心须要解决和满足一下几个问题:配置集中管理;在零碎运行期间能够动静配置,并实时刷新到服务;高可用。咱们罕用的配置核心的组件有:Apollo,Nacos,Disconf,SpringCloud Config 等等。1.3 负载平衡在微服务架构中,负载平衡是必须应用的技术,通过它来实现零碎的高可用、集群扩容等性能。一般来说,在微服务中有 2 种模式的负载平衡,一种是中间件负载平衡,一种是客户端负载平衡,这两种都微服务开发都有充沛的应用。先说中间件负载均衡器:客户先申请到负载均衡器,而后负载均衡器依据负载平衡算法将申请转发到微服务,在接入层的 LB 就是一个典型的负载均衡器。还有一种就是客户端的负载平衡,客户端自身保护服务提供者的列表,和本身进行负载平衡的算法对服务提供者进行调用。SpringCloud Ribbon 就是基于客服端的负载平衡工具,它能够将面向服务的 REST 模板申请主动转换成客户端负载平衡的服务调用:负载平衡算法有:轮训、随机、加权轮训、加权随机、地址哈希等等,这些将在前面章节具体说到。1.4 网络通讯在微服务中,应用什么协定来构建服务体系?个别由两种抉择:RPC 和 REST API:RPC:Remote Produce Call 近程过程调用,基于原生的 TCP 通信,速度快,效率高。REST:是 Http 协定通信,底层也是基于 TCP,规定了数据传输的格局,目前在 web 浏览器和服务器通信大量应用,也能够用来进行近程服务调用。优劣比照:从应用的方面来看,REST 接口只须要关注提供方,客户端只有也用 Http 形式进行调用即可,可能不要思考单方应用的语言,客户端只有通过接口发动调用即可,业务开发人员只须要关注业务办法,不须要关注网络传输细节。从性能角度来看,REST 接口应用 Http 协定进行传输,导致在网络传输过程中,携带信息过多。而 RPC 服务个别只须要关注传输相干业务即可,传输数据更小,性能更高。1.5 序列化序列化是用来通信,服务端把数据序列化,发送到客户端,客户端把承受到的数据反序列化失去对应的数据,而后再讲数据序列化后发送到服务端,服务端再反序列化失去相应的数据。说白了,数据须要通过序列化后变成二进制流能力在服务端和客户端中传输。罕用的有上面几种序列化:Hessian2 序列化 : hessian 是一种跨语言的高效二进制序列化形式,它是 Dubbo RPC 协定默认的序列化形式;Dubbo 序列化 : 并不成熟,Dubbo 序列化其实不是 Dubbo RPC 默认的序列化;Java 序列化 :JDK 自带的 Java 序列化实现,成果并不现实。1.6 平安认证有些服务并不心愿所有的人都能去调用到,波及到一些敏感信息,比例跟钱相干的信息,那么咱们须要平安和拜访的控制策略,来限度对这些服务的拜访。咱们这里说的平安拜访指的是服务间的调用,而不是内部用户的调用,内部用户能够走 API 网关。1.7 断路限流断路,限流,降级,超时,隔离是一整套容错的组合拳。在介绍断路之前,咱们先理解微服务的雪崩效应。在微服务体系中由多个服务进行组成,服务之间的数据交互通过近程调用实现,这样带来一个问题,假如服务 A 调用服务 B 和服务 C,服务 B 又调用了服务 D 和服务 E,服务 C 又调用服务 F,这样就呈现所谓的扇出,如果扇出的链路上某个服务调用呈现不可用或者调用相应工夫过长,那么服务 A 的调用资源会占用越来越多,因为服务 A 是入口资源,进而引起零碎解体,这个就是所谓的雪崩效应。当服务 E 呈现问题,会导致服务 B 也呈现问题,服务 B 呈现问题会导致服务 A 呈现问题,而的入口服务 A 的解体,就是整个零碎的解体。从可用性和可靠性触发,为了避免零碎的整体解体,必须采纳对应该的技术手段,采纳的伎俩都是从零碎可用性,可靠性角度登程,尽量避免零碎整体迟缓甚至瘫痪。服务熔断:是对雪崩效应的一种微服务链路爱护机制;服务降级:整体资源不够用,被动敞开局部服务,或在呈现熔断状况下呈现的兜底计划;服务限流:当呈现流量超过了整体零碎能够承接的流量,零碎被动做出管控,只容许局部流量进入,回绝或延后其余流量;断路降级限流,在微服务体系中是一个很大的保障性组件,在后续章节会作为一个大课题进行解说。1.8 链路跟踪微服务将一个宏大的零碎切分成各个小的服务,各个服务之间相互依赖,独特协同调用构建成整个零碎。这个就是造成咱们整个零碎有简单的调用链路,如果一个调用链路谬误,如何疾速定位谬误资源,一个调用链路影响迟缓,如何疾速定位其中提早高的服务。调用链漫长并且简单,要理解每一个环节,咱们须要全链路跟踪,利用的原理也很简略,就是在申请的开始,生成一个惟一的 ID,并将其传递到整个调用链,这样就能够依据整个 ID 来跟踪整个申请并获取各个调用环节的性能指标。1.9 监控报警监控是微服务治理的一个重要环节,监控零碎的欠缺水平间接影响到咱们微服务质量的好坏,咱们的微服务在线上运行的时候有没有一套欠缺的监控体系能去理解到它的衰弱状况,对整个零碎的可靠性和稳定性是十分重要。微服务监控是一整套系统性的监控,一个比较完善得微服务监控体系须要波及到哪些档次,以下划分为 5 个档次的监控最底层基础设施监控;零碎层监控;应用层监控;业务监控;端用户体验监控。1.10 对立日志微服务将原来的单体利用拆分成 N 个服务散布在不同的机器,原来的单个日志也被散布在 N 台机器,日志对咱们前期排查问题,定位问题十分要害,而扩散的日志对监控和查看势必造成微小的困扰。解决这个问题,其实比较简单,只有解决 日志采集,日志存储,日志剖析可视化日志数据,市面上 ELK 是一套比拟成熟计划。1.11 API 文档在单体传统的 API 文档输入,是由一个组或一个团队对立的输入,这个时候比拟容易进行标准。但在微服务中,每个文档都是由各个团队进行输入,这个时候容易呈现:API 接口规定返回信息不明确;API 接口更新还关系到告诉调用者,导致文档更新交换一直;短少在线接口测试,通常须要额定的 API 测试工具,例如 postman;接口文档太多,不便于管理。解决以上问题,能够引入比拟成熟的对立生成 API 文档工具。例如 Swagger , 能够在较多层面解决上述问题,也便于对立治理。 ...

December 16, 2022 · 1 min · jiezi

关于程序员:从极客到-CEO开发者应该如何提升技术领导力

Eotalk 是由 Eolink 发动的泛技术聊天流动,每期会邀请一些技术圈内的大牛聊聊天,聊些对于技术、守业工作、投融资等热点话题。 第二期,咱们很快乐邀请到了甘果科技的 CEO 老甘(路文杰)。老甘身份颇多,他曾任 TechParty 组委主席和现任副主席、TGO 鲲鹏会广州会长和回甘社的组织者,CEO 身份以外的他,还是技术社区重度爱好者。明天咱们和老甘一起聊一下他过来 20 年从技术到 CEO 的降级之路,如何晋升自我、率领团队、并且一直打造集体品牌等,给大家一些教训上的启发。 老甘和甘果科技 老甘: Hello ! 大家好,我是老甘(路文杰),明天也很感激 Eolink 和昊臻的邀请,心愿和大家多交换。 我是在 12 年 5 月份就创建了当初的甘果科技这个软件公司,晚期是靠着 APP 互联网那一波浪潮成长起来,通过从 10 集体到 50 集体再到 70 集体,刚好也 10 年了。 咱们定位成一个靠谱的软件外包团队,始终沉闷在广深,咱们的一个特点就是咱们很少做广告,次要靠口碑举荐,也服务过广深这边的各种大厂了。 做社区是因为社区在我守业的过程中帮了我很多,我也心愿可能通过本人的力量反哺社区或者参加社区的流动当中。 守业的契机和能源? 刘昊臻: 你为什么会思考本人守业?是什么推动着你这么多年保持下来?个别人不太能设想到保持10年做一件事件是什么样的一种感触。 老甘: 很多事就是在冥冥中有安顿的,其实我当年读计算机的时候比拟早,大略是 2000 年左右,是中国的互联网的萌芽阶段,因为我也始终喜爱计算机编程,也想过本人开办一个技术公司,但早年都在深刻做技术。直到 11 年安卓以及 iOS 的挪动互联网趋势到来,咱们感觉既然本人有技术就做一个技术公司呗。 刚好市场有很多人找过去问咱们是否做这个那个零碎的,需要是十分旺盛的。所以我感觉是一个因缘偶合,刚好到了一个行业筹备起步的时候,咱们刚好又很早的参加进来,吃到了第一波红利。 从工程师到管理者的门槛? 刘昊臻: 你是一个十分资深的IT人,从一线工程师到管理者,工作工作最大的不同是什么?须要逾越的思维和能力的门槛有哪些? 老甘: 我本人总结了三个阶段: 一开始 3-5 年在一个特定的行业或者是畛域外面先把本人做足够深刻,成为一个技术专家,有个吃饭的技能。 到了技术专家之后,随着你面临的业务越来越简单,你可能合作的团队和治理人也越来越多,这个时候你可能就会自然而然的会转变成为所谓的技术治理,这个时候你会发现你要学习和理解货色会变得越来越多,对你的视线、集体的格局的要求也会更高。这个时候曾经思考的可能并并不单纯是技术的问题,比如说咱们产品、市场等。 再往后一点,对于有守业或者成为技术高管想法的人则是怎么样可能把本人变成一个所谓技术商人,就是我有独特的技术、独特的想法,而后我用本人的技术去疾速去实现它,而后必须把它做好。那这个时候你面临的问题可能会更加简单,商业模式、人员、资金等等各种的问题。 随着工作的深刻,面临的问题会越来越简单,因而在保障本人有够硬的专业技能前提下,应该踊跃拓展软实力。 如何对团队人才进行筛选和造就? 刘昊臻: 随着团队成员越来越多,如何对人才进行筛选和造就? ...

December 16, 2022 · 1 min · jiezi

关于程序员:fastposter-v2100-简单易用的海报生成器

fastposter v2.10.0 简略易用的海报生成器 fastposter海报生成器是一款疾速开发海报的工具。只需上传一张背景图,在对应的地位放上组件(文字、图片、二维、头像)即可生成海报。 点击代码间接生成各种语言的调用代码,不便疾速开发。 现已服务泛滥电商类项⽬,多个项⽬有52W+⽤户,通过多年⽣产环境的考验,稳固牢靠。广泛应用于各类电商、分销零碎、电商海报、电商主图等海报生成和制作场景。 特别感谢大家的激励、捐献和反对,开源不易、心愿可能始终保持。社区版 v2.10.0 公布更改开源协定为 MIT降级依赖 Pillow==9.3.0降级依赖 requests_cache==0.9.7专业版 v2.0.14反对 minio 资源存储(感激林总提供反对)数据库配置文件,须要应用"",防止纯数字明码的状况下导致无奈获取DB连贯. Python版本解决static资源不同步问题 Java版本下载海报反对动静传递文件名称 Java版本相干地址开发文档:poster.prodapi.cn/doc/在线演示:poster.prodapi.cn/专业版Python在线演示:poster.prodapi.cn/pro/专业版Java在线演示:poster.prodapi.cn/pro/java/只需三步,即可实现海报开发一、启动服务docker run -it --name fast-poster -p 5000:5000 tangweixin/fast-poster二、编辑海报fastposter编辑海报 三、生成代码fastposter生成代码 申请示例(可间接传递须要的参数) curl --location --request POST 'https://poster.prodapi.cn/api/link' \--header 'Content-Type: application/json' \--header 'token: ApfrIzxCoK1DwNZOEJCwlrnv6QZ0PCdv' \--data-raw '{ "title": "人工智能+机器学习", "id": 2}'响应示例(返回海报的拜访地址) { "code": 0, "msg": "success", "data": { "url": "https://poster.prodapi.cn/v/90295c118d4c8802" }}实用场景: 海报生成器海报主动生成工具海报在线设计生成器海报生成器在线制作生成朋友圈海报电商海报编辑器证书制作证书主动生成工具Python Pillow绘图 Pillow制作海报电商主图编辑器Java生成分享海报图片微信小程序生成海报分享朋友圈PHP生成海报图片自定义商业海报图片H5生成海报图片canvas生成海报图片通过JSON生成海报图片BufferdImage绘制图片 出处:公号「SaaS 守业之路」,一位 SaaS 守业路上的普通人,喜爱力不从心的分享一些接地气的心得和播种

December 16, 2022 · 1 min · jiezi

关于程序员:从-0-到-1-构建自己的-Docker-应用

本文首发自「慕课网」,想理解更多IT干货内容,程序员圈内热闻,欢送关注! 作者| 慕课网精英讲师 legendtkl 在日常开发或者生产环境中,很多状况下,咱们的零碎都不是一个利用能够搞定的,而是由很多个局部组成,比方 webapp,数据库,缓存等。所以这一章的例子,咱们就以一个 web 利用 + 缓存 redis 作为例子构建一个略微简单点的利用。 应用的语言和利用的版本如下:Python 3.8.1,Flask库 1.1.1,Redis库 3.4.1。 web 利用这次咱们应用 Python 来编写咱们的 web 利用,上一次咱们应用的是 Go 语言。因为 Go 语言部署间接应用二进制文件,Dockerfile 会极其的简略,为了让大家相熟一下 Dockerfile 的利用,所以这里咱们应用 Python 语言里编写咱们的 web 利用。Python 语言置信大家都很相熟,不相熟也没有关系,代码都很简略。基于 Python 的 web 网络应用框架比拟闻名的有 Django,Tornado,Flask 等。咱们这里应用 Flask 来构建咱们的利用,因为 Flask 是一种极其轻量的框架,正如作者所说: Flask is a lightweight WSGI web application framework. It is designed to make getting started quick and easy, with the ability to scale up to complex applications. It began as a simple wrapper around Werkzeug and Jinja and has become one of the most popular Python web application frameworks. ...

December 15, 2022 · 5 min · jiezi

关于程序员:编程中有没有遇到被自己蠢哭的BUG想学go有未来吗如何保持持续学习的热情-|极客观点

#极主观点 聚焦于技术方向、程序员职业倒退、个人成长等主题,致力于发动有价值的探讨,输入有价值的观点。 在本栏目中,咱们将为大家举荐在 #极主观点 版块被热烈探讨的话题,甄选出乏味的观点为你出现。期待咱们一起成长和提高呀 今日关键词:#BUG # go # 对技术的激情 编程中有遇到过被本人蠢哭的BUG吗?话题发起人:居然是我啊 已经因为少了个"}" 解体一下午.. 乏味的观点: 那应该是我第一次抄代码的时候(没错就是抄),那时候是还在学校里(意识我的敌人都晓得,我以前学新闻文学的),实践上这个业余和代码八竿子打不着,因为那时候不理解什么是镜像源,不晓得网络限度的问题,因而卡在了py环境调试的过程,卡了很久,如果没记错是两天。 为了留念这个时刻,我还特意拍了两张照片。 —— 社区用户:瞿小凯 乏味的观点: 有,而且还不少吧,都是教训和教训。 event.stopPropagaion, 我印象里这个单词我老是有种执念,会记成其余拼写,拼成了event.stopProgragation...,也不晓得咋想的。git pull代码后有抵触,解决抵触,然而没解决完就提交了。导致代码里一堆两个版本的代码留存,各种git的比照提示符,后果就是间接报错崩盘。最搞笑的,文件名小写结尾,比方timeline, 引入时用的大写Timeline。在Windows机器上,是能主动纠正文件大小写谬误的,也能失效。然而打包的时候,老是提醒找不到这个文件,打包失败。始终找问题找不到,发现代码没有任何问题。最初发现大小写,蠢哭了..—— 社区用户:Gomi 想学go,有将来吗?话题发起人:kumfo 我总感觉go要走PHP老路的感觉,以前PHP是世界上最好的语言,当初感觉golang是世界上最好的语言。 不晓得会不会当前和PHP一样都不晓得怎么死的? 乏味的观点: 先问是不是,再问会不会PHP死了没?先说论断:热度升高,但远远没有到"死"的水平PHP目前仍是入行门槛最低的后端语言,高薪PHP岗位也不在少数。 答复问题,学习go毫无疑问是有将来的,怎么判断是不是有将来?关上招聘网站搜寻一下golang相干岗位,这也是最疾速最间接的方法。 至于会不会“死”,能够明确的说,在咱们这一辈的有生之年是相对不会的。php专精于web, 起始于1995年,到明天都曾经沉闷这了么多年了,只有web不沦亡php就还有一席之地。而go设计于2007年,利用范畴比php要宽泛的很多,而且基于golang的杀手级利用远比php要多,单凭这一点就能判定golang的生命力会更强。 最初一点,要不要学习go,我感觉在集体精力容许的状况下,是应该要学习的。尤其是半路出门的phper, 学习go能够让学习者补习对于计算机的底层常识,而这对于IT从业者来说才是最重要的。 —— 社区用户:Totn 乏味的观点: 倡议有工夫多看看Golang...尤其对PHP而言 要不要学习某种语言看看北上广深的技术招聘以及他们对这门技术栈的要求;golang 当初还是上不高低不下的情况.集体:这是一门很自我的语言(在工夫格局方面可能体呈现进去); golang 没有太多花哨的语法而且有fmt的束缚进而来说我的项目比拟好治理(未来到来的泛型会造成一些影响)对于小而巧的公司来说 集体更偏向于 Nodejs Or Deno也不要把过多的工夫放在语言自身,比方SQL NOSQL数据库、架构也相当重要;也举荐一本能理解计算机底层一些货色的书:<深刻理解计算机操作系统> 对于GO的学习材料:https://books.studygolang.com...https://bingohuang.gitbooks.i... —— 社区用户:Stephanie 如何能力放弃继续学习?话题发起人:西安小哥 年过30,如何放弃对技术的热衷? 乏味的观点: 30岁,如果你持续放弃对技术的酷爱,想要用技术去实现一些自我价值,在事实社会作出一些有用的事件,有益于帮忙到一些人或者是提供更便捷更优惠的服务,又或者是推动科技的提高,持续深造学习,30岁正好是黄金年纪,这个时候的你,有着年老时候积攒的教训和人脉,有着年老时没有的沉稳与刚毅,这个时候可能有时人生的第二个阶段了,可能此时的你曾经有了家庭,也有可能仍旧孤身一人,然而谋求技术的方向不应该有所变动,如果你酷爱技术,想要用技术去实现自我价值,就抉择技术这条富裕挑战的路线,如果你决定转型做治理,其实你须要思考本人是否具备某种率领团队的能力,作为团队的领导,须要有决策力,关键时刻果决,决绝,须要沟通能力,协调好团队每个人的能力去实现好一件事件。所以,不论是做技术,坚持下去,迎接挑战。还是抉择治理,造就本人的沟通和决策能力,都是人生的抉择。总之,不管怎么选,认真做事的态度很重要。个人见解,加油就好! —— 社区用户:若风 乏味的观点: 我想你应该能够试着停下以后的脚本,思考一下将来的旅途。另外也能够停下来,认真复盘本人走来的辛苦历程,我想这对于你找到将来的方向,或者找回对技术的酷爱有肯定的帮忙。说是到了30,其实我感觉心态才是最重要的。如若不然,你应该能够找集体好好聊一聊,问一问在这个行业中的前辈们,他们是如何调整本人的,这应该会比咱们的答复更加对你有所帮忙。然而不得不说,到了30岁,留神放弃身体健康,肯定是对酷爱技术的你最大的帮忙。 —— 社区用户:宁在春 他们的观点和探讨是否也能带给你启发呢?你又有什么乏味的观点,心愿与大家分享? 快扫描二维码退出咱们,一起交换成长吧,等你哦 欢送在评论区留下你的观点呀~

December 3, 2022 · 1 min · jiezi

关于程序员:一文搞懂蓝牙模块的各种工作模式

 摘要:本文次要演绎总结蓝牙模块的不同工作模式,通过蓝牙模块不同的工作模式理解其表演不同角色时工作的一个基本原理,为更深刻的钻研蓝牙模块底层的工作机制和技术计划进行铺垫。 1、主设施工作模式 主设施是可能搜寻他人并被动建设连贯的一方,从扫描状态转化而来的。其能够和一个或多个从设施进行连贯通信,它会定期的扫描四周的播送状态设施发送的播送信息,能够对四周设施进行搜寻并抉择所须要连贯的从设施进行配对连贯,建设通信链路胜利后,主从单方就能够发送接收数据。例如智能手机,数据传输中做主机的蓝牙模块。 一个蓝牙设施以主模式发动连贯时,须要晓得从设施的mac地址,配对明码等信息,配对实现后,可间接连贯。同时主设施能够设置默认连贯从设施的mac地址,这样主设施模块上电会主动搜寻该mac地址的从设施并且进行连贯。并且反对白名单性能,用户只须要把须要连贯的设施的mac写入白名单中,模块搜寻到合乎白名单的设施时就进行连贯。主从透传协定雷同时,用户不须要关注串口数据与无线数据包之间的数据转换过程,只需通过简略的参数设置,即可实现主设施串口与从设施串口之间的数据透传。 为保障连贯的稳定性,预防断电、信号等异样问题导致模块之间断开连接,能够开启断线重连性能,当异样烦扰问题隐没,模块工作环境恢复正常,主设施会主动搜寻刚刚断连的从设施,尽可能减少数据的失落,进步零碎稳定性。 2、从设施工作模式 从设施模式是从广播者模式转化而来的,未被连贯的从设施首先进入播送状态,期待被主机搜寻,当主机扫描到从设施建设连贯后,就能够和主机设施进行数据的收发,其不能被动的建设连贯,只能等他人来连贯本人。和播送模式有区别的中央在于,从设施模式的蓝牙模块是能够被连贯的,定期的和主机进行连贯和数据传输,在数据传输过程中作从机。例如蓝牙手表手环,蓝牙鼠标等工作在从设施模式。 一对一利用中从设施能够设为两种类型,一是静默状态,即只能与指定的主设施通信,不被别的蓝牙设施查找;二是开发状态,既可被指定主设施查找,也能够被别的蓝牙设施查找后建设连贯。 从设施模式下,用户能够依据协定本人开发APP。此模式下蕴含一个串口收发的Service,用户能够通过UUID找到它,外面有两个通道,别离是读和写。用户能够操作这两个通道进行数据的传输。如果用户应用的主设施和从设施是同一个厂家生成的蓝牙模块,那么主设施和从设施相连接能够无需关注外面的协定,蓝牙设施在出厂前事后设置了两个蓝牙设施之间的配对信息,两端设施接通电源后主动构建链路,不须要外围电路的染指,两个设施的串口间接就能够进行数据的通明传输,为用户建设一个简略的无线传输通道。 通过上述对蓝牙模块主设施模式和从设施模式的别离论述,能够将根本的主从建设连贯的过程总结如下:蓝牙主设施发动连贯,首先是查找,找出四周处于可被查找的蓝牙设施。主设施找到从设施后,与从设施进行配对,此时须要输出从设施的PIN码,也有设施不须要输出PIN码。 配对实现后,从端蓝牙设施会记录主端设施的信赖信息,此时主设施即可向从设施发动连贯,已配对的设施在下次连贯时不再须要从新配对。已配对的设施,作为从端蓝牙设施也能够发动建设链路的申请,但作数据通信的蓝牙模块个别不启动调用。一旦建设了链接,主机和从机之间就能够进行双向的数据或语音通信。在通信状态下,主设施和从设施都能够发动断链,即断开蓝牙链路。 3、主从一体工作模式 主从一体工作模式是指蓝牙模块能够同时作为主设施和从设施。其能够在两个角色间切换,工作在从模式时,期待其它主设施来连贯,须要时,转换为主模式,向其它设施发动连贯调用。主从一体提供了扩大蓝牙模块的能力,在蓝牙4.1协定标准后,增加了“链路层拓扑”的性能,就能够容许蓝牙模块同时作为主设施和从设施,在任何角色组合中操作。例如蓝牙HUB终端。 当具备主从一体的蓝牙模块工作时,该蓝牙模块能够作为主设施收集其它外围从节点设施的信息,同时作为一个从设施将收集到信息上报给主控终端如手机。这样的益处就是外围的从节点设施信息能够不局限在本地保留,通过主从一体的蓝牙模块施展中继器的作用,收集后上传给云端或集中控制器保留或显示。 主从一体额定减少了蓝牙模块的性能,老本优化和易用性。 如果蓝牙模块以前在封闭系统中作为主设施工作,那当初还能够同时作为从机连贯到智能手机,从而实现新的连贯维度。在主从一体工作模式下,一个蓝牙模块就能够表演两种角色,从而能够优化零碎架构。 4、广播者工作模式 蓝牙播送是蓝牙4.0以上设施必须反对的性能。它不波及到更下层的连贯层和协定层。因而,利用蓝牙播送的数据包来传递的信息,在蓝牙设施上具备更好的实时性和兼容性。在播送模式下,蓝牙模块定期继续的向四周发送肯定长度播送的数据包,该数据能够被扫描者搜寻到,模块能够在低功耗的模式下继续的进行播送,利用于极低功耗,小数据量,单向传输的利用场合。蓝牙播送通道的重要性能就是是用于发现设施,发动连贯和发放数据。 播送模式次要有两种应用场景:(1)繁多方向的、无连贯的数据通信,数据发送者在播送信道上播送数据,数据接收者扫描、接收数据;广播者”将用作服务器。其目标是定期将数据传输到设施,但不反对任何连贯。如信标、广告牌、室内定位、物料跟踪等。(2)面向连贯的建设,如蓝牙从设施播送音讯后由主设施搜寻到后进行连贯,广播者和从设施模式的惟一区别是不能被主机连贯,只能播送数据。 蓝牙的播送个别是向外播送本人的mac地址、名称以及反对的个性,播送次要是用于被其它的设施发现,而不是进行数据发送的。播送包长度是固定的字节,尽管能够有厂商自定义的数据,然而数据也是无限的。 播送数据包有两种:播送包(Advertising Data)和响应包(Scan Response),其中播送包是每个设施必须播送的,而响应包是可选的,每个包长度都是固定字节N,数据包的长度N随着蓝牙协定的规范进步而扩容,例如蓝牙5.0的数据包从蓝牙4.2的31字节降级成为255字节,数据包中分为无效数据和有效数据两局部。每个播送包的长度必须是N个字节,如果不到N个字节 ,则剩下的全用0填充补全,这部分的数据是有效的。 5、观察者工作模式 观察者模式,该模式下模块为非连贯,绝对广播者模式的一对多发送播送,观察者能够一对多接收数据。在该模式中,设施能够仅监听和读取地面的播送数据。和主机惟一的区别是不能发动连贯,只能继续扫描从机。 观察者工作模式可利用于数据采集集中器的利用场合,如传感器集中器采集等性能;另一个典型的例子是蓝牙网关,蓝牙模块处于观察者模式,无播送,它能够扫描四周的广播设备,但不能要求与广播设备连贯。 6、iBeacon工作模式    iBeacon 是苹果公司2013年9月推出的一项室内低耗能蓝牙技术。其工作形式是:iBeacon是一个低功耗的蓝牙信标,应用的是BLE技术,工作在播送模式,利用的是BLE中名为“通告帧”(Advertising)的播送帧。通告帧是定期发送的帧,只有是反对BLE的设施就能够接管到。播送的发射功率能够调整,不停的播送蓝牙设施的mac地址、UUID等固定字节的字符串等信息,接管到该字符串应用软件会依据该字符串采取一些措施。 iBeacon是基于2010年公布的蓝牙4.0技术规范的根底上倒退而来的微定位技术。它是建设在低功耗蓝牙协定根底上的一种播送协定,同时它也是领有这个协定的一款低功耗蓝牙设施(从机),然而它不能和任何低功耗蓝牙主机进行连贯,通常是放在室内的某个固定地位,借此向四周进行连续性播送,所有播送数据在特定规定下进行排列。 与WIFI定位相比,iBeacon定位具备低成本和高安全性,其利用场景多种多样。常见的利用是准确营销,比方博物馆、展厅的信息推送或者购物中心服务商向顾客发送折扣卷及进店积分等。如果把它放在室内固定的地位,能够作为一个定位器,手机关上蓝牙连贯之后通过APP就能够获取其地位,同时会推送一些设置好的信息到咱们手机上。 微信摇一摇也退出了iBeacon性能,例如住酒店,用户在酒店大堂摇一摇,就能够获取房间信息。很简略,你的手机退出装了一个反对iBeacon的APP或者你用微信摇一摇周边,刚好你又在这个iBeacon设施旁边,手机就会收到一段蓝牙信号,而后手机带着这个信号,去服务器问,这个信号是啥意思,服务器看到这个信号,又看到是你的手机带着这个信号过去的,那就给你发信息。 蓝牙iBeacon是一种十分新鲜的交互方式,它是一种低功耗协定,也是一种低功耗蓝牙设施。在智能畛域有十分宽泛的前景。 7、Mesh组网工作模式  蓝牙Mesh组网技术在2017年失去SIG批准,这是一种独立的网络技术,兼容4及5系列蓝牙协定。它把蓝牙设施作为信号中继站,利用低功耗蓝牙播送的形式进行信息收发,蓝牙Mesh技术拓展了蓝牙的通信关系,突破了以往蓝牙设施只可能主从一对一、播送一对多通信的限度,使网络内的蓝牙设施能够实现“多对多”的设施通信,这将大大增加蓝牙的通信间隔和利用场景,填补了蓝牙在大规模组网,大面积笼罩应用领域的空白。 Mesh网络也称为"多跳网络",或者“网状网络”。Mesh网络的每一个节点都能够作为AP和路由器,通信时,当某个节点损坏或者梗塞时,能够主动绕过该节点,从新抉择门路达到目的地,能够让网络更高效牢靠。 工作在Mesh组网模式的BLE蓝牙模块能够简略的将多个模块退出到网络中来,一个退出到蓝牙Mesh网络中的设施称为节点利用星型网络和中继技术,每个网络能够连贯实践最大65536个节点,每个节点都能够发送、接管、转发音讯。音讯能够在Mesh网络中被转发从而达到更远的间隔。网络和网络还能够互连,最终可将有数蓝牙模块通过手机、平板电脑或 PC 进行互联或间接操控。并且不须要网关,即便某一个设施呈现故障也会跳过并抉择最近的设施进行传输。整个联网过程只须要设施上电并设置通信明码就能够主动组网,真正实现简略互联。 因为目前简直所有的智能手机都具备蓝牙性能,所以能够应用手机对蓝牙Mesh设施进行间接管制。蓝牙Mesh是一种能够像ZigBee一样实现大规模组网,同时又不用依赖网关,能够应用手机进行间接管制的计划。 总而言之,蓝牙Mesh组网有着广大的发展前景,这种技术可组节点成千盈百,无需网关能够间接与智能终端通信,满足物联网的连贯需要,这是任何其它短距离无线技术都不具备的条件,在智能家居、智能建筑等泛滥畛域具备利用劣势,蓝牙Mesh技术将成为物联网短距离规模组网的最优计划。 ...

December 3, 2022 · 1 min · jiezi

关于程序员:什么是-UI-框架

作者| 慕课网精英讲师 Rosen UI 是什么?先来说下 UI,这俩字母是 User Interface 的缩写,个别翻译成“用户界面”。UI 最次要的性能就是建设用户和零碎后盾之间的分割,零碎后盾通过 UI 把数据转换成可视化的内容展现给用户,同时用户也要通过 UI 把操作指令(包含数据)传给零碎后盾。 对 UI 不太熟悉的同学一听到这个概念,可能会感觉它的作用就是怎么把一个产品做的丑陋,所以 UI 设计师常常被人叫成美工。而事实上 UI 应该是负责“交互”和“视觉”这两方面的工作,这两局部内容形成了产品的用户体验。 用户体验里最重要的应该是这个产品好不好用,也就是“交互”这部分,这其中包含产品性能是否欠缺,产品流程是否设计的正当,应用是否不便,操作是否晦涩等。在一些大公司里,为了保障产品好用,还会专门设置交互设计师这个职位,专门做交互局部的设计工作。 “视觉”在用户体验中也很重要,但它肯定要建设在好用的根底上。如果一个用户在应用产品的性能上呈现问题,这个用户很可能就散失了。但如果产品用起来没问题,只是界面不那么丑陋,个别也就是被吐槽一下,不会造成性能缺失所导致的那么重大的结果。在我看来,一个零碎的交互舒服水平要比好看更重要。 UI 的贡献者在一个我的项目的开发周期中,UI 的造成须要多个角色进行配合。产品经理、UI 设计师、前端开发人员都是用户界面重要的贡献者,甚至后端开发人员在做数据处理时也都须要思考到 UI 的影响。上面大略说下这几个贡献者的各自分工: 产品经理,我的项目的主导者。次要思考的是零碎里功能性的局部。产品经理须要理解一个零碎面向的用户群体,以及这个群体的特点和应用习惯,而后设计出满足用户需要的产品。在这个阶段产品经理会产出产品的原型,包含功能设计和大抵的性能散布。产品的设计决定了产品的实用性。UI 设计师,用户体验的设计者。当产品经理确定产品性能后,UI 设计师就该进场了。设计师会和产品沟通,按照产品模型再做交互和视觉上的优化,最初按照设计后果产出 UI 设计图。UI 设计图是 UI 设计师的最终产出后果,但这个工作更重要的是在设计上,不仅仅是画设计图。所以,千万别再把人家叫美工了,因为叫错被打了也就忍着吧。前端开发人员,从 UI 设计图到理论产品的实现者。前端开发人员最次要的工作是把产品和 UI 确定的最终设计稿变成能够运行的程序。前端开发人员是一个施工方的角色,但能够从代码的角度对产品经理和 UI 设计师提出有价值的意见。并且在施工中,好的前端开发人员也会留神到用户体验,比方优化加载速度,按钮点击范畴,列表滚动的顺滑水平等。后端开发人员,幕后英雄。咱们个别感觉后端开发人员只管解决数据就能够了,和 UI 没什么关系。但当咱们确定好一个页面要显示什么内容的时候,还是要找后端开发的同学来帮着咱们把这个页面须要的数据整合到一起,这就须要后端人员在做数据结构设计的时候就把这些因素思考进去。 UI 框架后面介绍了 UI 的状况,从当初开始,就要进入咱们这个课程的主题–UI 框架。咱们这个课程次要讲页面切图局部内容,也就是 HTML 和 CSS 的局部。 当咱们在做切图时,最常见的是把设计图用 HTML 和 CSS 一一还原进去。这个过程中咱们会发现写了很多冗余的代码。比方 Button,每个页面用到的中央都要写上一堆 Button 的款式,缓缓的为了放慢开发,就开始大量复制粘贴,最初就导致整个代码里有几十个很相似的 Button 款式。 页面中其实有很多像 Button 这种会用到很屡次的组件,这时候咱们会想到把这些具备共性的货色抽离进去,变成通用的组件。这样再写页面的时候,只有引入这些通用的组件,就不必在页面里反复写这些内容了。通过一直的提炼,就造成了 UI 库或 UI 框架。 ...

December 1, 2022 · 1 min · jiezi

关于程序员:Python日学壹技性能分析

导读置信日常应用Python作为生产力的读者,肯定会存在想要剖析代码中每一行的运行工夫与变量占用内存大小的需要,本文次要剖析两个模块,用于剖析每行代码的内存应用状况和运行工夫状况。 内存应用memory-profiler装置pip install memory-profiler应用办法一在须要剖析的函数上,增加装璜器@profile@profiledef test1(): c=0 for item in xrange(100000): c+=1 print (c) 应用上面的命令运行python -m memory_profiler memory_profiler_test.py 应用办法二 from memory_profiler import profile @profile(precision=4,stream=open('memory_profiler.log','w+'))# @profiledef test1(): c=0 for item in xrange(100000): c+=1 print c# 间接运行即可 后果Filename: memory_profiler_test.pyLine # Mem usage Increment Line Contents================================================ 5 21.492 MiB 21.492 MiB @profile 6 def test1(): 7 21.492 MiB 0.000 MiB c=0 8 21.492 MiB 0.000 MiB for item in xrange(100000): 9 21.492 MiB 0.000 MiB c+=1 10 21.492 MiB 0.000 MiB print cMem usage: 内存占用状况Increment: 执行该行代码后新增的内存运行工夫line-profiler装置pip install line-profiler应用在须要剖析的函数上,增加装璜器@profile@profiledef slow_function(a, b, c): ...运行python -m line_profiler script_to_profile.py.lprof后果Pystone(1.1) time for 50000 passes = 2.48This machine benchmarks at 20161.3 pystones/secondWrote profile results to pystone.py.lprofTimer unit: 1e-06 sFile: pystone.pyFunction: Proc2 at line 149Total time: 0.606656 sLine # Hits Time Per Hit % Time Line Contents============================================================== 149 @profile 150 def Proc2(IntParIO): 151 50000 82003 1.6 13.5 IntLoc = IntParIO + 10 152 50000 63162 1.3 10.4 while 1: 153 50000 69065 1.4 11.4 if Char1Glob == 'A': 154 50000 66354 1.3 10.9 IntLoc = IntLoc - 1 155 50000 67263 1.3 11.1 IntParIO = IntLoc - IntGlob 156 50000 65494 1.3 10.8 EnumLoc = Ident1 157 50000 68001 1.4 11.2 if EnumLoc == Ident1: 158 50000 63739 1.3 10.5 break 159 50000 61575 1.2 10.1 return IntParIO每列含意 ...

November 30, 2022 · 2 min · jiezi

关于程序员:时光邮局来写一封未来的信试试吧JAVAVitepress

什么是时光邮局?漫漫星河璀璨,漫漫古道长河。 官网:云寄-时光邮局寻找一份非凡的意义,学会热爱生活,学会面朝大海。 有一天我收到了两年前的本人来信。 如果能够给末来寄信你会写些什么呢? 如果能收到两年前的本人的信你又心愿能看到什么呢? ——进行一场与末来的相遇 简介嘿嘿!这个我的项目源于我和我敌人们的一个想法,我是一枚 Java 程序员,技术的路线上很累,我还在一步步前行,艰难必不可少,然而累了无妨好好享受一下生存,给将来的本人,写一封信,或者寥寥几笔,或者又纸短情长,或者... 生存的美妙期待每一个人去发现,谁也不例外。 或者,若干年后,来了一封逆时空的邮件,或浪漫,或开心,或冲动,或回顾,跨时空的语言,让你脑海中缓缓荡起回顾,那个喜爱的姑娘?那个童稚的本人?那个坚定不移的人?那段......纸短情长。 春风总是如约而至,而咱们也不会守约,认识一下,我叫小简,一个废柴程序员,然而我总是喜爱奇奇怪怪的想法,我在寻找意义,因为这才是人生。 咱们应用Java作为后端开发语言,Vitepress配合Vue3作为前端开发技术,构建了一个自动化的网页。 哎...呀呀呀,bug有些多,勉强能够用吧,大佬对付看看吧! 域名:mail.totime.cn 至于为什么应用Vitepress这种文档框架去构建,次要还是因为懒,加上这玩意用起来快,编译后还不须要SEO优化,反正编译后是html文件,用纯Vue2/3还得用nuxt来服务端渲染,不然SPA程序SEO老难了。界面展现 挪动端就懒得展现了。 挪动端用的VantUI,这UI我感觉十分好用,也难看。 然而我挪动端编辑器也和电脑端一样,用的Vditor,加载起来慢,点开编辑器可能第一次还不肯定疾速加载进去,当前再想方法吧。 经营性能电子邮件应用的Quartz来实现定时工作,而后....竟然有人刷接口,所以用Redis+拦截器+自定义注解,去实现了接口防刷,提交接口5分钟只能3次,验证码获取1分钟最多3次。 实体函件刚开始经营咱们不免费(微信领取用V3SDK接入了,还要测试,哈哈哈),大佬们不来试试吗? 目前大略收到了35-50封信,其中大略个别实体信,一半电子邮件。 另外也给团队用Wordpress打造了一个交换社区,刚好有一个CN域名,8B9。 那站点就叫8比9,8 : 9,08:09,看起来是一个工夫,刚好咱们团队就叫与时同行,哈哈哈。实体函件实体函件咱们应用邮政挂号,发送EMS(这不是国境范畴内处处可到嘛)邮递。实体信工夫做了限度,必须>3月,不然意义不大。 实体信咱们定制了火漆印章,信纸、信封。 信封应用了珠光纸材质(贵一点然而不易损坏),而后定制了3处金烫。 信封展现 字体是打印的,当初打印机太厉害了,搞个字体,打印进去比手写难看多了。 投递成果 函件提交胜利会收到邮件,收回邮件也会给出邮件。 还是那句话:互联网正在扭转着每个人的生存,你、我、他都不例外,程序员走在了时代前沿,所以......我在追寻一些我想做的事件与意义,应用一串串代码,一个个字节。 无妨试试,反正不免费。

November 30, 2022 · 1 min · jiezi

关于程序员:Flutter-离线数据方案-FlutterData-包

Flutter 离线数据计划 Flutter_Data 包 原文 https://levelup.gitconnected....前言 通过离线优先来改善您的用户体验 Flutter Data 是一个让你的应用程序先离线的软件包。 离线时,它在设施上应用 Hive 存储,当到 API 的连贯可用时,更改将主动同步。 在本文中,咱们将增加 flutter_data 包并将其连接起来,以便在应用程序启动时检索 recipes。 注释我花了一段时间才弄清楚本人想要什么,并勾画出设计草图: High level design过后产生了很多事件,要想做好是很简单的。 我用粗体文本突出显示了一些须要编码或配置的操作,并用它们制作了一个工作列表: 步骤 1: 在启动时从 app_config.json 加载环境值。步骤 2: 增加新包。步骤 3: 正文 recipes 模型。步骤 4: 配置 Flutter 数据。步骤 5: 笼罩 Http 客户端应用 Dio。步骤 6: 为开发和测试配置 Mock Adapter。您能够在 XP 局部中找到实现细节。 这篇文章有很多细节,我的倡议是浏览足够多的内容来了解正在产生的事件,如果您决定或须要实现它,能够将其作为参考。 请反馈,如果你有更好的办法或倡议的改良。咱们欢送任何有助于改良这一要害倒退工作的帮忙。 Ta Da 哒哒GlobalEnvironmentValues.instance .loadValues(await rootBundle.loadString("app_config.json")); 启动时从 app_config.json 加载环境值。 对申请应用模仿 API 客户端 Flutter 数据触发 FindAll 办法 显示返回的 recipes ...

November 30, 2022 · 3 min · jiezi