关于程序员:Flutter-AlarmManager-⏰

Flutter + AlarmManager = ⏰ 原文 https://medium.com/flutter-co...前言 如果您是一名 Android 开发人员,当您心愿将应用程序安顿在未来的特定工夫运行时,能够应用 AlarmManager。如果你是一个 iOS 开发者,这种类型的组件并不存在。 如果你是一个 Flutter 开发者,你会怎么做? 像大多数与 Flutter 相干的事件一样,当您想要应用特定于平台的组件时,您须要公开它的性能。 AlarmManager 也不例外。 本文将介绍 Android AlarmManager Plus 包,并展现如何在应用程序中应用它。 筹备好设闹钟了吗? 注释Setup 设置关上 pubspec.yaml 文件并增加以下内容:dependencies: android_alarm_manager_plus: ^2.0.6Something 免责申明 → 撰写本文时,最新版本是 2.0.6运行 pub get下载依赖项咱们将应用您在 Android Studio 中创立 Flutter 我的项目时取得的一般我的项目(减去所有计数器逻辑)。 关上 AndroidManifest.xml 文件并增加以下权限:<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/><uses-permission android:name="android.permission.WAKE_LOCK"/><!-- For apps with targetSDK=31 (Android 12) --><uses-permission android:name="android.permission.SCHEDULE_EXACT_ALARM"/>在您的应用程序标签中,增加以下内容:<service android:name="dev.fluttercommunity.plus.androidalarmmanager.AlarmService" android:permission="android.permission.BIND_JOB_SERVICE" android:exported="false"/><receiver android:name="dev.fluttercommunity.plus.androidalarmmanager.AlarmBroadcastReceiver" android:exported="false"/><receiver android:name="dev.fluttercommunity.plus.androidalarmmanager.RebootBroadcastReceiver" android:enabled="false" android:exported="false"> <intent-filter> <action android:name="android.intent.action.BOOT_COMPLETED" /> </intent-filter></receiver>最初,你的 AndroidManifest 文件应该是这样的: ...

November 30, 2022 · 2 min · jiezi

关于程序员:JavaScript中常用数据类型你知道几个

本文首发自「慕课网」,想理解更多IT干货内容,程序员圈内热闻,欢送关注! 作者| 慕课网精英讲师 Lison 这篇文章咱们理解一下 JavaScript 中现有的八个数据类型,当然这并不是 JavaScript 中的所有数据类型,而是当初版本的 TypeScript 反对的根本类型,在学习根底类型之前,咱们先来看下如何为一个变量指定类型:为一个变量指定类型的语法是应用"变量: 类型"的模式,如下:let num: number = 123如果你没有为这个变量指定类型,编译器会主动依据你赋给这个变量的值来推断这个变量的类型:let num = 123num = 'abc' // error 不能将类型“"123"”调配给类型“number”当咱们给num赋值为123但没有指定类型时,编译器推断出了num的类型为number数值类型,所以当给num再赋值为字符串"abc"时,就会报错。这里还有一点要留神,就是number和Number的区别:TS中指定类型的时候要用number,这个是TypeScript的类型关键字。而Number为JavaScript的原生构造函数,用它来创立数值类型的值,它俩是不一样的。包含你前面见到的string、boolean等都是TypeScript的类型关键字,不是JavaScript语法,这点要辨别开。接下来咱们来看下,这八个JS中你见过的类型。2.1.1 布尔类型类型为布尔类型的变量的值只能是 true 或 false,如下:let bool: boolean = false;bool = true;bool = 123; // error 不能将类型"123"调配给类型"boolean"当然了,赋给 bool 的值也能够是一个计算之后后果是布尔值的表达式,比方:let bool: boolean = !!0console.log(bool) // false2.1.2 数值类型TypeScript 和 JavaScript 一样,所有数字都是浮点数,所以只有一个number类型,而没有int或者float类型。而且 TypeScript 还反对 ES6 中新增的二进制和八进制数字字面量,所以 TypeScript 中共反对二、八、十和十六四种进制的数值。let num: number;num = 123;num = "123"; // error 不能将类型"123"调配给类型"number"num = 0b1111011; // 二进制的123num = 0o173; // 八进制的123num = 0x7b; // 十六进制的1232.1.3 字符串字符串类型中你能够应用单引号和双引号包裹内容,然而可能你应用的 tslint 规定会对引号进行检测,应用单引号还是双引号能够在 tslint 规定里配置。你还能够应用 ES6 语法——模板字符串,拼接变量和字符串更为不便。let str: string = "Lison";str = "Li";const first = "Lison";const last = "Li";str = ${first} ${last};console.log(str) // 打印后果为:Lison Li另外还有个和字符串相干的类型:字符串字面量类型。即把一个字符串字面量作为一种类型,比方下面的字符串"Lison",当你把一个变量指定为这个字符串类型的时候,就不能再赋值为其余字符串值了,如:let str: 'Lison'str = 'haha' // error 不能将类型“"haha"”调配给类型“"Lison"”2.1.4 数组在 TypeScript 中有两种定义数组的形式:let list1: number[] = [1, 2, 3];let list2: Array<number> = [1, 2, 3];第一种模式通过number[]的模式来指定这个类型元素均为number类型的数组类型,这种写法是举荐的写法,当然你也能够应用第二种写法。留神,这两种写法中的number指定的是数组元素的类型,你也能够在这里将数组的元素指定为任意类型。如果你要指定一个数组里的元素既能够是数值也能够是字符串,那么你能够应用这种形式:number|string[],这种形式咱们在前面学习联结类型的时候会讲到。当你应用第二种模式定义时,tslint 可能会正告让你应用第一种模式定义,如果你就是想用第二种模式,能够通过在 tslint.json 的 rules 中退出"array-type": [false]敞开 tslint 对这条的检测。前面咱们讲接口的时候,还会讲到数组的一个非凡类型:ReadonlyArray,即只读数组。2.1.5 null 和 undefinednull 和 undefined 有一些独特特点,所以咱们放在一起讲。说它们有独特特点,是因为在 JavaScript 中,undefined 和 null 是两个根本数据类型。在 TypeScript 中,这两者都有各自的类型即 undefined 和 null,也就是说它们既是理论的值,也是类型,来看理论例子:let u: undefined = undefined;// 这里可能会报一个tslint的谬误:Unnecessary initialization to 'undefined',就是不能给一个值赋undefined,但咱们晓得这是能够的,所以如果你的代码标准想让这种代码合理化,能够配置tslint,将"no-unnecessary-initializer"设为false即可let n: null = null; 默认状况下 undefined 和 null 能够赋值给任意类型的值,也就是说你能够把 undefined 赋值给 void 类型,也能够赋值给 number 类型。当你在 tsconfig.json 的"compilerOptions"里设置了"strictNullChecks": true时,那必须严格看待。undefined 和 null 将只能赋值给它们本身和 void 类型,void类型咱们前面会学习。2.1.6 objectobject 在 JS 中是援用类型,它和 JS 中的其余根本类型不一样,像 number、string、boolean、undefined、null 这些都是根本类型,这些类型的变量存的是他们的值,而 object 类型的变量存的是援用,看个简略的例子:let strInit = "abc";let strClone = strInit;strClone = "efg";console.log(strInit); // 'abc' ...

November 30, 2022 · 2 min · jiezi

关于程序员:效能工具如何在企业规模化落地|线上沙龙回顾

11月22日,ONES 与 QECon 联结主办了以「效力平台的行业趋势与成功之路」为主题的线上直播,邀请的嘉宾别离为冯斌(Kid,ONES 联结创始人兼 CTO)、石雪峰(京东批发技术效力通道常委)、魏昭(腾讯研发效力技术专家),DevOps 与研发效力资深技术专家张乐负责主持人。 「效力平台」作为研发效力「黄金三角」中的重要一角,其重要水平显而易见。不过企业广泛不缺工具,小规模的企业可能会选用开源工具或者洽购商业化效力平台,规模绝对较大的企业可能会采纳自研的形式来设计和研发合乎本人上下文的效率平台。 无论是哪种形式,在数字化转型浪潮席卷的明天,咱们都会面临重重挑战。尤其很多企业曾经走过了从 0 到 1 的工具小范畴试点的阶段,那么在 1 到 N 的规模化倒退阶段,如何通过平台产生更好的效力?为了达到咱们所谋求的价值指标,平台该往哪个方向倒退?哪些方向值得进一步摸索? 明天这场线上沙龙,咱们就来看看四位老师的精彩探讨和碰撞。 工具最重要的指标是让业务胜利 张乐:在降本增效的大背景下,研发效力平台应该往哪个方向演进?咱们做工具还要是想一想,往哪个方向走能力取得更多益处。 冯斌(Kid):数字化演进的实际其实曾经跨过第一步了,就是把很多信息放在一个工具零碎里,并且产生一些结构化的货色。然而有了工具之后,咱们就更心愿从中产生一些数据,并对数据进行度量。不过随之而来的问题是,咱们到底应该要看哪些数据呢? 很多团队容易犯的一个谬误是,定义的指标与最终的业务价值离得很远,最经典的笑话就是把研发效率和代码行数强关联起来,这就很容易产生内卷,而且方向也不对。 从咱们的教训看,将与度量相干的最佳实际落到平台上是值得尝试的方向。比方在推动工具落地的过程中必定会遇到一个挑战,就是在一个团队的推广成果不错,那怎么让第十个团队也能获得同样的成果?很重要的一点是把这些最佳实际落地到工具里,以便于通过平台帮咱们去做规模化的扩大,把好的实际办法扩大到更多的团队。 当然还会有另外的挑战,比方如何度量效力,到底该用哪些指标。这方面咱们也跟客户重复沟通过,首先指标肯定不能是太过程的指标。掂量价值时要看最终的指标,改良时则须要更关注过程的指标。 石雪峰:咱们做工具很长时间了,在我看来,从 0 到 1 再到 N 能够分为三个阶段。第一个阶段,工具特地重要,大家的注意力根本都聚焦在工具的建设上。 第二个阶段,工具没那么重要。咱们建了很多工具,但无论是 DevOps 还是研效,都没有获得特地显著的成果,大家的感知也没有那么真切,所以就会产生另外一个极其:是不是用钱造出来一款最好的工具,就能进步人效呢?显然不是,很多有钱公司的人效并没有做到业界的 Top。继而大家就会颠覆之前的论断,说工具可能不重要,咱们要去做其余事件。 缓缓地就会来到第三个阶段,也就是明天这个大环境,工具的重要性又凸显进去了。这时就有一个特地有意思的话题:度量和工具哪个更重要? 度量诚然很重要,但做工具的形式更重要。为什么?因为度量的目标最终还是会落到工具上,做度量不是目标,而是为了改良工具。工具的改良,能实实在在地帮忙咱们一线研发晋升效率和体验满意度。那么在我看来,「以产品化的形式去做工具」就是将来比拟明确的一个趋势。 以产品化的形式做工具,数据就显得尤为重要。从 0 到 1 时,大家去对齐性能,把工具做进去。从 1 到 N 时,如果再去堆砌性能,会让工具变得臃肿,没那么好用。所以从 1 到 N,导向应该是数据。 数据能够从两方面看,一是用户的反馈、主观感触、满意度,二是用户应用的数据,能够帮忙咱们真正去改善工具。 最初是工具要向业务凑近。做工具也好,咱们作为研发人员也好,如果始终以一种老本核心的形式去做,其实很难自证成果,因为咱们自身就是老本核心。无论再怎么证实,也只能阐明是大老本核心或者小老本核心,始终跳不出这个圈。 如果让工具成为业务的搭档,业务方等角色对于工具价值的认可度就会越来越高,也更容易落地推广,A/B Test 就是一个很好的例子。工具最终的指标还是让业务胜利,所以跟业务走得更近也是在扩大工具的边界。 魏昭:降本增效能够说是互联网寒冬的大势态下很多企业的共识。我集体认为降本不是目标,而是一个伎俩,降本的终极目标还是增效。比方通过裁员升高人力老本,短期看老本确实升高了,但从长期收益来看很可能是不值当的。所以降本,必定不是单纯地去降人力老本。 咱们更应该聚焦用户的痛点,在研发的各个流程中,解决人工化的一些痛点问题,从而实现工具化、智能化,通过翻新来破局,达到增值的成果。 像需要治理平台、代码治理平台、CI/CD,都属于根底平台。除了这些平台外,研发环节中还有哪些痛点问题须要解决?比方代码开发环节,大厂积攒了很多代码,为了防止反复开发、造轮子,就须要有代码搜寻的工具,帮忙检索外部的代码,复用高质量的代码。 降本增效和翻新这两者并非互相冲突,如果用很传统的降本增效的形式,咱们可能永远是在一个老的构造里一直循环,并不能带来实质上的扭转。但翻新就不一样了,翻新很有可能带来十倍甚至更高的效力晋升,起到破局的作用。 相比工具的性能,流程数字化更重要 张乐:之前有篇文章很火,叫「DevOps 已死,平台工程永生」,其中就把平台工程作为 2023 年一个极为重要的技术趋势。咱们要怎么了解平台工程?平台工程跟研发效力有什么关系?是否有值得咱们学习的中央? 冯斌(Kid):还是要强调平台的重要性。工具的性能很重要,不过更重要的是「流程数字化」。对于一个中大型的团队来说,比如说几百人的团队,作为技术管理者,面临的很重要的挑战就是怎么保障大家在日常工作当中不犯大错,否则会重大影响效率。 以前咱们会强调培训,激励大家从底层上有不犯错的驱动力,这没问题,不过可能没那么可靠,因为人是必定会犯错的。这个时候有一个很重要的伎俩,就是通过工具帮忙咱们把最佳实际固化到工具里。不过怎么保障第一位同学跟第三百位同学都做到不犯大错呢? 举个例子,咱们在为客户服务的过程中,都会用工具平台去做卡点,比方分支要满足什么样的条件才容许被合并进去,而没有任何别的路径。 流程数字化有一个很重要的益处,就是能够保障大家执行完之后至多做到70分。想要做到90分,这对于团队来说是一个老本极高的事件,然而有了这70分的根底,之后再通过工具、激励团队等伎俩,就很有可能让团队往90分的状态迫近。所以通过工具固定流程,能够帮忙咱们把底线定义进去,把大家的程度拉到一个水平线上。 石雪峰:平台工程当初这么火,或者更须要诘问的是,这背地所反映的诉求是什么?行业为什么会对它感兴趣?难道说是因为 DevOps 搞不上来了,渴望一个新的概念吗? ...

November 30, 2022 · 1 min · jiezi

关于程序员:基于-Hive-的-Flutter-文档类型存储

基于 Hive 的 Flutter 文档类型存储 原文 https://medium.com/gytworkz/d...前言 长久以来,咱们始终应用共享首选项以键对格局在本地存储中存储数据,或者应用 SQLite 在 SQL 数据库中存储数据。 存储本地数据的另一种办法是将其存储为文档格局,相似于应用 Hive 包的 Firebase 云存储。 https://pub.dev/packages/hive 注释Features 特色跨平台: 挪动,桌面,浏览器表演很棒径简略,弱小,直观的 API内置了很强的加密没有本机依赖项Advantage 劣势便于存储和检索比其余存储技术更快更高效Benchmark 基准 速度比照 Implementation 施行步骤 1: 在 pubspec.yaml 中增加依赖项 dependencies: hive: ^[version] hive_flutter: ^[version]dev_dependencies: hive_generator: ^[version] build_runner: ^[version]第二步: 初始化 hive await Hive.initFlutter();步骤 3: 创立一个框 提醒: 应用 path_Provider 包获取应用程序的本地目录 盒子是什么?存储在 Hive 中的所有数据都组织在框中。框能够与 SQL 中的表进行比拟,但它没有构造,能够蕴含任何内容。 对于一个小型应用程序,一个独自的框可能就足够了。对于更高级的问题,框是组织数据的好办法。还能够对盒子进行加密以存储敏感数据。 能够抉择,但倡议! 要晓得盒子能够包容的确切数据,您能够指定盒子的类型 var box = await Hive.openBox<User>('users');box.add(User());box.add(5); // Compile time errorAdvance Stage 后期阶段当初是时候创立一个能够存储在蜂箱中的模型了。 ...

November 30, 2022 · 1 min · jiezi

关于程序员:36氪专访融云CEO董晗8年企服6年出海现计划成为沙特最大科技企业

⬆️关注微信公众号文章报名融云&艾瑞“政企数智办公钻研报告及新品发布会” 若从 2001 年中国退出 WTO 算起,中国企业走向海内的过程曾经继续了二十余年。但因为行业起步较晚,国内企服畛域的全球化,直到往年才渐成趋势。关注【融云寰球互联网通信云】回复【融云】抽取高颜值大容量高端可乐保温杯哦~ 这带来的一个景象是,当下咱们仿佛很难找到中国企服公司全球化经典案例——尤其,在那些业务重心正向海内转移,并非 Day 1 就主攻寰球的群体中,呈现这类案例的概率更低。 相较之下,作为一家成立于 2015 年,但在 2016 年就追随客户布局海内的公司——通信云厂商「融云」的经验或是绝对成熟的案例。 从目前的后果看,融云已累计服务包含 LiveMe、Opera、StarMaker、Lispon、Castbox、Tiya 等在内的数千家海内客户,并在两年前于中东、东南亚等地建设了分公司,目前也正主攻北美市场。而纵观融云的出海幅员,中东,尤其是沙特,或是最不可或缺的一块——在这里,融云不仅提供了 IM、RTC 的通信云能力,还行将推出一款名为 Beem 的 To C 产品。 “相似于‘中东版的微信’。”融云 CEO 董晗如此形容 Beem。 她进一步介绍,这款产品主打熟人社交,次要源于两年前沙特提出的产品代替需要。而融云团队依靠此前经营飞信的背景,再加上其投资方 eWTP 的帮忙,承接了打造这一产品的业务。 以后,Beem 正在内测环节,打算于明年正式推出。将来,它还将从沙特推广到其余中东国家,心愿成为 4 亿多阿拉伯人的标配。 “这是真正的前端业务,有了它,融云在中东就不仅仅是一个赋能者的角色,而是成为了深度参与者。”在董晗眼中,布局 Beem,是融云决定把海内业务晋升一个重量级的间接契机。 毫无疑问,成为“某个国家/地区的微信”,是一件充斥想象力的事。董晗坦言,现在这件事在不少国家曾经不具守业机会,但在中东、非洲、东南亚仍然值得尝试。而也正相似微信生态,依靠于 Beem 的平台,融云正在帮忙一些国内的企业服务公司进入包含沙特在内的中东市场。“就像在微信中植入小游戏一样,融云也依靠 Beem 在当地的流量和平台属性,帮忙中国 SaaS 出海。”董晗举例。以后,融云曾经帮忙某些协同办公类产品进入当地。 在重要的商业空间问题上,她也笃信,大家会在中东取得不错的收益。 一个事实是,在国内,不少主打 SaaS 模式的企服公司长期面对着服务小微客户赚不到钱,服务大企业定制化、效率不高的窘境。而从董晗的业务教训登程,中东因为应用不少美国软件,对 SaaS 模式的接受度较高,并且客户付费能力强,再加上当地对中国企业工程师形象的信赖,是一块值得中国企服公司开垦的瘠田。 回顾公司 6 年的全球化过程,董晗感觉,融云从提供 IM、RTC 能力做起,再到于沙特落地 Beem,成为当地 C 端市场的参与者。接下来,基于对当地市场的理解水平和平台产品的能力,融云也会成为当地真正意义上的“技术输送者”。这意味着,融云在沙特的指标是“成为当地最大的科技公司”。 而这所有的想象力,无疑都来自于 2016 年出海的决定。如果没有出海的尝试,董晗感觉融云的路会绝对窄和难,经营、扩张策略也会更加激进。 总之,那不是融云最期待成为的样子。而出海,则“是一个十分笃定的、对的抉择。”董晗说。(融云 CEO 董晗) 专访局部36氪: 融云起家于国内,现在在海内多有布局,过后决定出海的契机是什么?董晗:融云从 2016 年起布局海内。过后最原始的契机是,咱们的客户“猎豹挪动”旗下直播利用 LiveMe 走出国门,对咱们在海内的基建提出了相应的要求。 ...

November 29, 2022 · 2 min · jiezi

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

作者| 慕课网精英讲师 Lison 如果自学TypeScript,到底要如何学呢?1.2.1 学会看文档英文官网文档始终是及时更新的。但即使是官网的文档,有一些更新在更新日志里写了,而老手指南里却没有及时同步更新,所以有时看指南也会遇到困惑,就是文档里写的和你理论验证的成果不一样。遇到这种问题,首先确定你应用的TypeScript版本,而后去更新日志里依据不同版本找对这部分常识的更新记录。如果找到了,看下这是在哪个版本做的降级;如果你不释怀,能够把TypeScript版本降到这个版本之前的一个版本,再验证一下。TypeScript 是有一个中文文档的,然而这个文档只是对英文文档的翻译。官网文档中的小疏漏,这个文档也没有做校验,而且更新是有点滞后的。 所以想理解TypeScript的最新动静,还是要看英文官网文档的。1.2.2 学会看报错如果咱们配置当书写的代码不符合规范,应用 error 级别来提醒时,会和 TypeScript 编译报错一样,在问题代码上面用红色波浪线标出,鼠标放上去会有谬误提醒。所有如果咱们应用了TSLint,遇到报错的时候,首先要辨别是 TSLint 报错还是 TS 报错,来看下如何辨别:下面这个报错能够从红色方框中看到,标识了 tslint,阐明它是TSLint的报错。前面括号里标的是导致这条报错的规定名,规定能够在 tslint.json 文件里配置。示例中这条报错是因为 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 申明文件动手。装置好 TypeScript 后,咱们能够在 node_modules 文件夹下找到 typescript 文件夹,外面有个 lib 文件夹,lib 文件夹根目录下有很多以 lib. 结尾的 .d.ts 文件。这些文件,就是咱们在开发时如果须要用到相干内容,须要在 tsconfig.json 文件里配置引入的库的申明文件,这个配置咱们前面会讲到。先简略举个例子,比方咱们要应用 DOM 操作相干的语法,比方咱们获取了一个 button 按钮的节点,那么咱们就能够指定它的类型为 HTMLButtonElement,那么咱们再拜访这个节点的属性的时候,编辑器就会给你列出 button 节点领有的所有属性办法了;如果咱们要用到这个类型接口,那咱们就须要引入 lib.dom.d.ts 也就是dom这个 lib。这里如果你对一些提到的概念不明确,你能够先疏忽,因为前面都会讲到。这里我要通知你的就是,你应该学着看这些申明文件,看看它们对于一些内容的申明是如何定义的,可能帮你见识到各种语法的使用。1.2.4 学会搜问题和发问理论开发中,有时候你难免会遇到一些文档里没有提到的各种各样的奇怪问题。解决问题的路径有很多,求教有教训的人是最简略的啦,但前提是你身边有个随叫随到的大神,可这样的人个别很少有,所以还是看看我举荐给你的解决问题的路径吧:路径1:百度 or Google一般来说公众的问题都能在百度找到,然而开发问题 Google 可能帮你找到一些高质量的国外答疑帖,所以这两个搜索引擎你都能够试试,这个路径是你遇到问题之后的首选。路径2:看issueTypeScript 的问答的确要比很多框架或者基础知识的少很多。如果搜索引擎找不到,你能够到 github 上 TypeScript 的官网仓库,在issues里能够通过问题关键字搜寻,看看有没有人反馈过这个问题。这里要留神,搜寻的是关键字,而不是把你的报错信息残缺输进去,这样根本很难搜到。你应该挑选出错误信息中比拟具备代表性的单词进行搜寻,因为这和搜索引擎不一样,issues 提供的搜寻还不是很弱小。路径3:去发问如果下面两个路径都没找到,你只能自行发问了,这也是一个造福前人的办法。比拟受欢迎的发问网站:国内你能够试试 segmentFault,国外能够试试stackOverflow,还有就是 TypeScript的issues 了。但要留神如果在 stackOverflow 和 issues 中发问,最好最好用英文。1.2.5 看优良我的项目源码这个学习办法是比拟高阶的了,看一些优良的开源我的项目源码能够为你提供思路。你还能够借鉴到同一个逻辑不同人的实现形式。源码去哪里找呢,当然首选是 Github 了,进入 Github 后,你能够在顶部的搜寻栏搜寻你想要找的我的项目关键字,比方你想找个Todo利用的我的项目源码,那就搜"todo"。而后在语言栏抉择 TypeScript,这样就会筛选出应用 TypeScript 编写的我的项目: ...

November 29, 2022 · 1 min · jiezi

关于程序员:动画演示选择排序算法

1、排序规定1.1 一句话总结抉择排序从数组中第一个数字开始,数组中每个数字都要和前面所有数字比一次大小,每每次循环遍历以后最小值,放在以后循环范畴内的最小地位。当实现第 N - 1 次循环之后,排序实现。N = 数组长度 - 1。 1.2 排序办法和规定假如对数组 arr = [1, 4, 7, 3, 5, 8, 9, 2, 10, 6]排序,数组长度为 arr.length,i 为数组下标。 假如咱们用红色来标记最小值,假如数组中的第 i = 0(索引下标为 0)个元素就是整个数组的最小值,咱们临时先把它标记为红色。为了验证第 i = 0(索引下标为 0)个元素是最小值,他须要和数组中每个元素进行比拟。在遍历过程中,如过发现更小值,在遍历残缺个数组之前,则临时先标记新的最小值为红色。持续遍历,反复上一步,直至循环完结,以后红色地位的数字就是最小值。把最小值和以后第一个数字地位调换,因为红色地位的数字更小。‘此时咱们实现了一轮循环,整个数组中最小的数字曾经找到,咱们给它标记为橙色。上面咱们开始第二轮循环,找数组中第二小的数字,因为第一小的数字曾经找到,所以咱们第二轮循环从第 i = 1(索引下标为 1)个数字开始,办法为在除去第一个数字剩下的数字中反复 1-7 步。重复如此,每次循环,能够确定下标在 i 之后的所有元素的最小值,即以后循环的最小值。 10.当实现了 arr.llength -1 次循环遍历之后,抉择排序实现。2、动画演示 橙色:每轮循环最终的最小值红色:每轮循环过程中的长期最小值,当绿色滚动发现更小值的时候,更新长期最小值蓝色:尚未排序的元素3、Java 实现public class 抉择排序 { public static void main(String[] args) { int[] arr = {1, 4, 7, 3, 5, 8, 9, 2, 10, 6}; // 排序前 printArr(arr); // 排序 selectSort(arr); // 排序后 printArr(arr); } private static void printArr(int[] arr) { for (int i = 0; i < arr.length; i++) { System.out.print(arr[i] + " "); } System.out.println(); } public static void selectSort(int[] arr) { // 0~ N-1 // 1~ N-1 // N-2 ~ N-1 for (int i = 0; i < arr.length; i++) { int minValIndex = i; for (int j = i + 1; j < arr.length; j++) { minValIndex = arr[j] < arr[minValIndex] ? j : minValIndex; } if (minValIndex != i) { swap(arr, i, minValIndex); } } } private static void swap(int[] arr, int i, int j) { int temp = arr[i]; arr[i] = arr[j]; arr[j] = temp; }}本文由mdnice多平台公布 ...

November 29, 2022 · 1 min · jiezi

关于程序员:windows-to-go-和-linux-to-go-制作教程

应用 ventoy 制作windows to go 和 linux to go 教程,将零碎装进U盘中随身携带1. ventoy 介绍ventoy 是一个U盘启动盘制作工具。官网网址:https://www.ventoy.net/ 简略来说,Ventoy是一个制作可启动U盘的开源工具。有了Ventoy你就无需重复地格式化U盘,你只须要把 ISO/WIM/IMG/VHD(x)/EFI 等类型的文件间接拷贝到U盘外面就能够启动了,无需其余操作。你能够一次性拷贝很多个不同类型的镜像文件,Ventoy 会在启动时显示一个菜单来供你进行抉择 (参见 截图)。你还能够在 Ventoy 的界面中间接浏览并启动本地硬盘中的 ISO/WIM/IMG/VHD(x)/EFI 等类型的文件。2. 筹备工作本教程并不是教你如何制作装置操作系统的 U盘启动盘,而是制作一个能够在 ==U盘中实时运行的零碎==,将 U盘当C盘应用,像随身携带一个本人的操作系统一样,可在其余电脑上间接启动。 首先你须要筹备一下内容,提前准备好有助于节俭大量工夫: 装置有 windows10 以上版本的电脑一台 。一个大容量 USB3.0 接口的U盘。(装置linux举荐32G+,装置windows举荐64G+)VirtualBox 虚拟机软件ventoy 装置软件3. windows to gowindows to go 简称 wtg,wtg的教程有很多,目前市面上有很多工具能够间接将 U盘 一键转换成 wtg U盘,例如 萝卜头论坛的 WTGA 工具等等。https://bbs.luobotou.org/forum.php?mod=forumdisplay&fid=88 但这些工具都是应用了整个 U 盘空间,使 U盘只能当系统盘应用,无奈应用其外部的残余空间,造成了资源的节约。 本教程应用虚构磁盘技术(VHD),将 U盘中的一部分用于装置零碎,另一部分还可当失常的 U盘应用,且两局部互不烦扰。 本教程原理是应用虚构磁盘技术,从 U盘中分出一部分固定空间,在固定空间中装置操作系统,而后应用 ventoy 软件疏导操作系统的启动,从而实现在保留 U盘原始性能的条件下将操作系统运行在 U盘中。 3.1 将 U盘初始化正告:U盘的文件系统倡议应用 NTFS,FAT32会出问题。应用 ventoy 软件将 U盘转换成 ventoy U盘,而后将主分区格式化为 NTFS 格局。 ...

November 28, 2022 · 2 min · jiezi

关于程序员:Matplotlib-可视化50图散点图1

导读本系列将继续更新50个matplotlib可视化示例,次要参考Selva Prabhakaran 在MachineLearning Plus上公布的博文:Python可视化50图。 定义关联图是查看两个事物之间关系的图像,它可能展现出一个事物随着另一个事物是如何变动的。关联图的类型有:折线图,散点图,相关矩阵等。 散点图 测试导入须要应用的库import numpy as npimport pandas as pdimport matplotlib as mplimport matplotlib.pyplot as pltimport seaborn as snsplt.scatter#绘制超简略的散点图:变量x1与x2的关系#定义数据x1 = np.random.randn(10) #取随机数x2 = x1 + x1**2 - 10#确定画布 - 当只有一个图的时候,不是必须存在plt.figure(figsize=(8,4))#绘图plt.scatter(x1,x2 #横坐标,纵坐标 ,s=50 #数据点的尺寸大小 ,c="red" #数据点的色彩 ,label = "Red Points" )#装璜图形plt.legend() #显示图例plt.show() #让图形显示 例子# 除了两列X之外,还有标签y的存在# 在机器学习中,常常应用标签y作为色彩来察看两种类别的散布的需要X = np.random.randn(10,2) # 10行,2列的数据集y = np.array([0,0,1,1,0,1,0,1,0,0])colors = ["red","black"] # 确立色彩列表labels = ["Zero","One"] # 确立标签的类别列表for i in range(X.shape[1]): plt.scatter(X[y==i,0], X[y==i,1], c=colors[i], label = labels[i])# 在标签中存在几种类别,就须要循环几次,一次画一个色彩的点plt.legend()plt.show() ...

November 28, 2022 · 1 min · jiezi

关于程序员:Flutter-创建自己的对话框不使用任何包

创立本人的对话框,不应用任何包! 原文 https://itnext.io/create-your...前言在本文中,咱们将学习如何创立咱们本人的 showDialog() 函数,并理解到底产生了什么。 注释先看成果 让咱们首先查看 showDialog,看看它外面有什么! 正如您所看到的,showDialog ()所做的就是获取小部件并将其作为 DialogRoute 应用 Navigator 进行推送。没什么特地的! 因而,如果咱们想创立一个对话框,咱们应该应用导航器和路由,太! 但什么是导航器,为什么咱们须要它的对话? 没错,导航器也是个 widget ! 毕竟,一切都是一个 widget ,甚至是我,甚至是你,甚至是导航器自身ー匿名 Flutter 开发人员实质上,Navigator 的工作是治理一堆 Route 对象,并在 Overlay widget 中的 widget 之间进行可视化切换。 什么是叠加,为什么它很重要?基本上,Overlay 是一种非凡的 Stack widget ,它将应用程序包装在导航器中。 正如您所猜想的,Dialogs 仅仅是 UI 之上的 widget (就像吐司 widget 一样) ,但在这种状况下,导航器明智地应用 Routes 管制它们。这就是为什么他们让咱们感觉像别的货色。 是的,咱们也能够仅仅应用 Overlay widget 创立咱们本人的 widget ,然而咱们也想与导航器交互,因为咱们不想从新创造轮子!如果咱们不必领航员的话。咱们必须解决所有的过渡、生命周期、后退按钮、可勾销的阻碍等等。 这就是为什么咱们也应该晓得路线! 记住,showDialog() 也应用 DialogRoute 是有起因的。 然而对话路由有什么特别之处呢? 对话路由继承模式 对话路线的超能力来自于它的先人! 让我来通知你怎么做! 让咱们看看,在每一步,咱们继承了什么! Route -> A basic route“Route is a base class that interacts with the navigator.”OverlayRoute -> A route that knows how to interact with Overlay“A route that displays widgets in the Navigator’s Overlay.”TransitionRoute -> A route that can do a magic trick“A route with entrance and exit transitions.”ModalRoute -> A route that has a barrier behind it“A route that blocks interaction with previous routes.”PopupRoute -> A route that shows up over the current route“A modal route that overlays a widget over the current route.”RawDialogRoute -> A pre-configured route for dialogs“A general dialog route which allows for customization of the dialog popup.”DialogRoute -> A ready-to-use, pre-designed route“A dialog route with Material entrance and exit animations, modal barrier color, and modal barrier behavior”(这些句子都参考了官网的 api 文档。) ...

November 28, 2022 · 3 min · jiezi

关于程序员:高管对上新老板的-Twitter

推特要走的路还很长。推特这个产品曾经开始比拟边缘化,抱着手机刷 Twitter 的人在降落,更多的是一些公司或者机构公布一些更新。但,这些机构的更新又经常不足价值,导致当初 Twitter 下面的无效价值信息并不多。 在用户群组上的繁多信息流传能力的确还不如微信群组来得快。 举一个十分理论的例子: 我想去滑雪,我须要周边滑雪场的状况,大略有 4 到 5 个雪场的状况以便于我决定去哪个滑雪场。 在 Twitter 的信息模式上,我须要先订阅群组,或者订阅滑雪场的 Twitter 号,而后从历史的信息中过滤出我须要的无效信息。 在微信群组的模式下,须要做的就是发问,而后有人回复即可,这也就是为什么很多人把微信群作为疾速取得信息起源的第一步,而后应用其余工具对取得的信息进行验证。在美国这边微信通常还不是十分支流,然而也有相似的代替产品,比如说 Line 或者电报群,整体看起来没有微信群用得这么棘手。 在产品和应用上,Twitter 这个产品 N 年没有更新了,连界面都没怎么换过,曾经是审美疲劳了,如果不是后任总统喜爱在 Twitter 上 BB 找骂,预计很多人都曾经快不怎么应用了,说句话不好听的话,生动性和趣味性都比不上小红书(尽管也是各种垃圾,误导,营销信息满天飞),抖音就更没法比了。 印度高管,预计没有认真想明确这个产品到底应该怎么倒退,或者的确也想不明确怎么弄,只是抱着已有的用户基数炒冷饭。最初罗唆把前总统的账号给封了,这下子丑陋国就炸锅了,丑陋国人醒过梦来,原来这账号都不平安呀。连总统账号说封就封,预计本人的这个也差不多。 小马哥首先要解决人心问题,人心散了,队伍不好带了。只能先换血下刀子呗。 至于印度 CEO 和高管的问题,必定要先解决掉,上面就会缓缓好办了,毕竟他的政策还是须要人执行的,而后就是解决上面一堆代码写得不咋的,天天混日子的这种。 RPC 调用 1000 次,没有想去怎么变得更好,还怼老板不懂技术,就算老板不懂技术,这 RPC 调用 1000 次是人干的事件吗?不过这个很印度。 Twitter 要重现已经的辉煌,应该不容易,当初除了天天散失的用户基数,也余不下什么了。比照下鹅厂,尽管是我不要脸,我抄我开心,但鹅厂敢于推出一个和 QQ 侧面竞争的微信,并且缓缓的把 QQ 边缘化,而结构了一个微信生态圈,还是比当初被印度人玩死的 Twitter 好点。  https://www.ossez.com/t/twitt...

November 28, 2022 · 1 min · jiezi

关于程序员:45岁程序员精通各种技术体系竟然连个面试机会都没有

近两年国内外很多公司开始裁员35岁以上的技术员工,有些员工年纪太大,技术也不算精湛,迫于生计,不得不去送外卖,开滴滴,甚至还卖过烤冷面。 35岁仿佛成了程序员的一道坎,要么转岗,要么改行。 为什么很多老码农都被迫改行? 人到中年,年龄越来越大,身材机能直线降落,不仅发际线出现“涨潮热”趋势,就连肚子上的肥肉也是“日进斗金”。 没错,就是这样,这样,和这样... 996?007?这样的高强度工作,35+的中年人身心早已接受不来。 随着少量毕业生如雨后春笋般涌入,大量教育机构开张使就业人数减少,职场竞争日益强烈。而大部分老码农在经验过多年工作生涯后,无论是在工作激情上还是踊跃主动性上,都要比初入职场的年轻人差上很多。 这使得他们退职场上的降级和被优化的危险大大增加,一旦被迫裁员,能力还不精湛,也只能改行。 编程是碗青春饭? 有人说,程序员也是要靠青春吃饭的,年纪大了只能被市场所淘汰。 针对程序员35+的职业瓶颈和焦虑,来看看慕课网的老师们是怎么对待的: @Caleb 35岁的码农领有焦虑很失常。然而焦虑解决不了任何问题,要提前筹划好本人的职业生涯才是重中之重。 @神思者 人过了35岁后,看待焦虑的认识是会变的。首先作为程序员要实现跟本公司业务高度绑定,因为只有你成为了公司的万金油,才能够不必去放心降薪和裁员。做完这一点,残余的工夫就是扩大本人的知识面,用几年的工夫让本人的技术水平达到P8这样的程度,只有这样将来去任何BAT公司才不会受到年龄的制约。 @风间影月 30岁之前,最好可能达到高级开发以上,或者TeamLeader。这根本须要咱们具备扎实的项⽬开发能⼒,相熟框架原理,具备前端架构能⼒,能独⽴实现性能优化、架构降级、脚⼿架开发、服务端开发等,这些简单的技术。30岁之前实现级别晋升,有两方面考量,一是会升高30岁被裁员的危险,二是哪怕被裁员了,把握了应有的开发能力和职级教训,从新找工作也会容易许多。 35岁的时候,在大厂通常能达到P7~P8的层级,在这个层级上,须要咱们成为某领域专家,即⾏业中该领域专家,与之对应的,咱们须要在这个畛域进行大量实际,并且有冲破⾏业现有程度的、更高层次的奉献。这就要求咱们肯定要晋升集体的整体综合能力,比如说业务能力、治理能力等,再去抉择适宜本人的团队,到底是留在大厂持续冲破,还是返回中小厂率领他们疾速实现某⼀畛域的技术体系建设,这是35岁职场⼈必须要布局的问题。 40岁以上的人在公司根本都处于管理层,甚至高管行列,如果依然处在基层程序员的是十分常见的。这个年龄段的同学,对于团队的抉择、本身的定位要比35岁的同学更加迫切,他们须要为本人将来10年的职业路线进⾏布局。他们绝⼤局部会抉择退居⼆线,开释大半的工作压力,把更多的工夫投入到家庭中。倡议大家有资源的能够走进来守业,或是做集体开发者,接外包,也能够把眼光转向有前景有后劲的中小厂。如果你之前在大厂,那么大厂的技术实践经验更容易在中小厂拿到好后果,并且更容易取得治理职位,为本人久远的倒退提供能源。 最初,小慕想说,21世纪最须要的是什么?答:人才。 35+的程序员须要认清一个事实:市场真正会淘汰的,始终都不是年纪大的人,而是那些因为年纪大却不想去学习没本事的人,还有那些对工作失去激情的人。 不想被淘汰,只能造就外围竞争力 既然躺平不了,又不想被降级和优化,那么先从造就外围竞争力开始吧。 在互联网技术更迭速度越来越快的明天,对于一个程序员来讲,真正的致命打击是进行学习。 放弃常识的疾速更新,这样能力与时俱进,进步本身的外围竞争力。 换句话说,想干好程序员,岂但要致力工作还要好好钻研技术、多把握他人不懂的核心技术、把技术搞透搞深,正视本人,接收本人,从新做好职业规划,确定本人当前要干什么,而后朝着这个指标持续奋斗。 编程不是青春饭,技术才是硬道理。谁的技术更硬,谁能力走的更远。 保持学习和致力输入,35岁的程序员照样乘风破浪。

November 28, 2022 · 1 min · jiezi

关于程序员:Flutter-5-大本地数据库解决方案

Flutter 5 大本地数据库解决方案 原文 https://levelup.gitconnected....前言这里列出了最风行的数据库解决方案以及代码示例。 抉择正确的数据管理系统对于提高效率和可 extension 性以及影响可用性和用户体验至关重要。只管 flutter 依然处于晚期阶段,然而有很多数据管理解决方案可供选择,其中一些曾经能够投入生产。我将概述用于在本地保护数据的最常见的数据库管理系统。 注释SqfliteSqflite 是一个驰名的 SQLite flutter 插件。这是一个具备良好交易和批量反对的关系数据库。当数据库关上时,它会主动治理版本控制。它还包含用于常见 CRUD 操作的帮忙器。后盾线程解决所有数据库操作。它与 ACID 兼容,因而简直反对所有 SQL 规范。如果您喜爱将本人的 SQL 查问编写为字符串,那么这个简略的插件将满足您的数据管理需要。 // open the databaseDatabase database = await openDatabase(path, version: 1, onCreate: (Database db, int version) async { // When creating the db, create the table await db.execute( 'CREATE TABLE Test (id INTEGER PRIMARY KEY, name TEXT, value INTEGER, num REAL)');});// Insert some records in a transactionawait database.transaction((txn) async { int id1 = await txn.rawInsert( 'INSERT INTO Test(name, value, num) VALUES("some name", 1234, 456.789)'); print('inserted1: $id1'); int id2 = await txn.rawInsert( 'INSERT INTO Test(name, value, num) VALUES(?, ?, ?)', ['another name', 12345678, 3.1416]); print('inserted2: $id2');});// Update some recordint count = await database.rawUpdate( 'UPDATE Test SET name = ?, value = ? WHERE name = ?', ['updated name', '9876', 'some name']);print('updated: $count');// Get the recordsList<Map> list = await database.rawQuery('SELECT * FROM Test');List<Map> expectedList = [ {'name': 'updated name', 'id': 1, 'value': 9876, 'num': 456.789}, {'name': 'another name', 'id': 2, 'value': 12345678, 'num': 3.1416}];正如您从示例中看到的,我发现浏览这段代码并不容易。随着应用程序的增长,保护此代码将变得十分繁琐。因为 sqflite 是一个根本的数据库管理系统(DBMS)插件,所以我置信您应该构建本人的构造并将其包装在 sqflite 四周,就像大多数用于 flutter 的关系数据库管理系统包一样。 ...

November 27, 2022 · 4 min · jiezi

关于程序员:我是如何使用-Mackup-优雅的备份和恢复电脑开发环境

利用 Homebrew 和 Mackup 优雅的备份和复原电脑开发环境 遇到的问题每次更换电脑都要重新安装开发环境和初始化各类常用软件的配置最头疼的是常用软件的插件及个性化配置的迁徙如下流程我三年经验了六次: 装置 Homebrew再用 Homebrew 装置常用软件:vscode,iTerm,nvm,Chrome……减少配置文件,配置环境变量,如 nvm装置 vscode 的罕用插件配置插件装置 iTerm 插件配置插件......整个过程繁琐且耗时,怎么解? 解法解决软件装置效率问题如果你曾经应用 Homebrew 治理常用软件,那肯定要应用 Homebrew Bundle 优雅的备份和复原软件列表 批量备份 homebrew 软件# 执行brew bundle dump备份命令brew bundle dump --describe --force --file="/your/path/to/Brewfile"# 参数阐明--describe:为列表中的命令行工具加上说明性文字。--force:间接笼罩之前生成的 Brewfile 文件。如果没有该参数,则询问你是否笼罩。--file:在指定地位生成文件。如果没有该参数,则在当前目录生成 Brewfile 文件。批量装置 homebrew 软件brew bundle --file="/your/path/to/Brewfile"批量装置 vscode 插件# vscode 装置胜利后,利用 vscode 提供的 code 命令批量装置插件code --install-extension dbaeumer.vscode-eslint解决配置迁徙问题所有配置皆文件,所以只有解决文件同步该问题迎刃而解,这里能够应用 git 或云同步工具。这里还有一个小问题就是,从 git 同步下来配置文件如何失效?不同软件的配置文件放在固定目录,肯定是扩散在文件系统的各个角落,而咱们 git 同步下来的文件是依照咱们本人定义的构造保留的,这里就须要解决一下,让咱们的拉下来的配置文件失效。 解法就是应用「软连贯」 ln 命令是 linux 下一个非常重要也有用的命令,它能够为一个文件在另外一个中央建设一个同步的链接,相似于快捷键。ln [参数] [源文件或目录] [指标文件或目录]ln -s 创立软链接命令,s 是代号 symbolic 的意思,所谓软链接,它只会在你选定的地位上生成一个镜像,而不会占用磁盘空间,而如果应用 ln 不带参数的话,则就是硬链接,会在选定的地位上生成一个和源文件大小雷同的文件,占用磁盘空间。 ...

November 27, 2022 · 1 min · jiezi

关于程序员:盘点国内外那些API调试工具

盘点国内外那些API调试工具PostmanApipostApifoxInsomniaHoppscotchPostman 老牌api工具,最后公布日期: 2012,超过2000w开发者应用Github: https://github.com/postmanlabs Website: https://www.postman.com Platform: Windows、macOS、Linux、Web Postman Flows性能能够像工作流一样编辑接口申请 Apipost 2021年国产新秀; Apipost = Postman + Swagger + Mock + Jmeter; 后端、前端、测试,同时在线合作,内容实时同步Github: https://github.com/Kong/insomnia Website: https://www.apipost.cn Platform: Windows、macOS、Linux、Web Apifox API 文档、API 调试、API Mock、API 自动化测试;API 一体化合作平台,更先进的 API 设计/开发/测试工具; Apifox = Postman + Swagger + Mock + JMeterWebsite: https://www.apifox.cn Insomnia 开源的API客户端,反对REST、SOAP、GraphSQL和GRPC申请, MIT协定Github: github.com insomnia Website: Insomnia.rest Platform: Windows、macOS、Linux、Web 能够付费应用官网的服务,也能够本人下载客户端应用 Hoppscotch 开源的API开发生态,MIT协定,可独立部署Github: github.com hoppscotch Website: hoppscotch.io Platform: Web ...

November 27, 2022 · 1 min · jiezi

关于程序员:Flutter-单元测试例子

Flutter 单元测试例子 原文 https://medium.com/app-dev-co...前言执行单元测试来验证软件的每个组件。因而,咱们须要尽可能多地测试每个独自的微 widget 。这些都是由开发人员在开发阶段实现的。单元测试有助于在 QA 进行测试之前验证和验证所有的性能。此外,它还是一种白盒测试方法,用于摸索代码中的缺点。 让咱们用 Flutter 实现单元测试,看看上面的后果。我重申,这对你在挪动开发畛域的职业倒退十分有帮忙。因为这是强制性的。 注释增加依赖项Flutter 提供了进行单元测试的测试包。首先,您须要创立一个新的 Flutter 我的项目,并将测试包增加到 pubspec.yaml 文件中。 dependencies: flutter: sdk: flutter test:创立测试文件创立要实现的相干测试文件。并且该文件应该在 test 目录下创立。我将目录门路显示如下: testing_app/ lib/ main.dart test/ main_test.dart施行 Function而后您须要实现您想要测试的单元。在这里,我正在创立 Counter 类。在主类中,我在 Counter 类中增加了两个办法,一个用于递增,另一个用于递加变量 value 的值。 class Counter { int value = 0; void increment() => value++; void decrement() => value--;}实现 Test Function在 main_test. dart 文件中,咱们将依照上面的形式实现测试用例。 // Import the test package and Counter classimport 'package:test/test.dart';import 'package:slider_app/main.dart';void main() { test('Counter value should be incremented', () { final counter = Counter(); counter.increment(); expect(counter.value, 1); });}运行测试最初,您能够通过单击函数后面的播放图标来运行测试方法。而后您能够看到程序正在构建并胜利地运行测试。 ...

November 27, 2022 · 1 min · jiezi

关于程序员:11-件我希望自己开始编码时就知道的事情你也应该知道

11 件我心愿本人开始编码时就晓得的事件(你也应该晓得) 原文 https://medium.com/@piyushkes...前言 编码就像一个工具,你能够用来构建货色,你能够发明非凡的价值在这个世界上与编码。当我开始学习编程的时候,我才 16 岁,精确地说,我对于编程可能扭转我的生存是毫无目标的。我始终在练习编码,修改谬误,但我素来没有认真过。这可能是因为我认为,为了像专业人士一样编程,你必须像马克•扎克伯格(Mark Zuckerberg)或比尔•盖茨(Bill Gates)那样蠢才,或者你必须有高智商能力与别人竞争。不用说,那我就大错特错了。 快进到明天,我是一个残缺的网页开发人员和软件开发人员,编码和开发许多美好的我的项目,我感到十分骄傲。我练习各种类型的编码问题,从容易的到高级的主题,我素来没有自我狐疑过本人,我也不认为我须要成为一个蠢才能力编写更好的代码。一切都是为了练习。 在这篇文章中,我将通知你一些重要的事件,每个初学者开发人员必须晓得他/她是否开始学习如何编码。 注释编程就是解决问题编码不仅仅是坐在电脑前,用键盘输入一些键。事件远不止如此。编码须要解决事实世界中的问题ーー这些问题须要其他人来解决。利用你的编程天才来解决更大的问题,并帮忙这个世界成为一个高兴的居住地。如果你有能力做到这一点,那么你将永远受到关照。 Panning 平移当我开始学习如何编写代码的时候,在开始任何新的事件之前,我没有打算任何事件。不要犯这个谬误。在编写代码或构建任何货色之前,必须始终进行打算、编写和思考。胜利总是随同着执行,执行总是随同着打算。 你的一切都在你的指尖当初是 2022 年,咱们正在后退。这不像 50 年代或 60 年代,当你必须浏览沉重的教科书,以找到解决你的问题的办法。 如果你在某件事情上遇到困难,每个解决方案简直都在你的指尖。在谷歌上搜寻,在 YouTube 上搜寻,在 Twitter 上询问他人,或者在 LinkedIn 上与他人分割。这个世界就在你的指尖。用这个来实现你的幻想。 不须要任何极其的硬件代码当我开始编写代码的时候,我想我须要 4-5 个显示器,32-64 GB 的内存,一个高处理器芯片,诸如此类。因而,我限度本人去摸索和学习更多对于编码和开发的常识。所以不要像我这样做。说实话,这些硬件都是可选的。您甚至能够开始编码与您的一台笔记本电脑或个人电脑,必须工作良好,你能够找到任何替代品在互联网上,如果某些不适宜你。 一开始,我用的是一台带有 2GB 内存的笔记本电脑,最后我用的是手机代码。你的借口是什么?那时候生存很艰巨。当初不是了。 不须要数学很好诚实说,我的数学很好,我喜爱解决物理和数学中的难题。但我必须通知你,如果你想成为一名优良的软件开发人员,你不须要精通数学。 然而在计算机科学的某些畛域,如果你想成为一个数据科学家或者机器学习专家,你必须学习更简略的数学概念,比方统计学,平均值,中位数,模式,图形,排列和组合,复数,线性方程等等。然而对于计算机科学的次要局部来说,你基本不须要数学。所以,只管去学习计算机科学吧,不要胆怯学习数学。 最佳时机就是当初第一次种树的完满工夫是 20 年前,下一次就是当初。不要胆怯认为本人在编程或学习如何编码方面早退了。我在 15 或 16 岁时开始学习编程,但在 19 岁时我开始认真对待这个问题。有些人在 26-28 岁的时候就开始学习编码的基础知识。所以,不要认为你早退了。 你没有早退,你只须要当初就开始学习。如果你想学习编程,当初就开始学习吧。 谬误是学习的一部分一开始,你会在编程中犯很多大谬误,就像我一样。不过没关系,因为这都是你学习的一部分。正如阿尔伯特 · 爱因斯坦所说: “如果你不犯错误,那么你就不会学到任何新货色。”所以,承受你的谬误,一直尝试新的货色。 找到适宜你的地位找到你的利基市场和类别是十分重要的。从一个利基市场到另一个利基市场漫无目的地彷徨会让你满载而归。 确定你的趣味,并在跳入其中之前钻研一下可用的字段。 放弃好奇心对事物如何运作充斥好奇。在开始的时候,试着笼罩你的基础知识,并且总是对学习该畛域的新主题充斥好奇。 构建我的项目充斥激情的我的项目让你坚持下去。 对于边我的项目的想法,抉择一些你真正感兴趣的货色。 当你关怀最终后果的时候,这会激发你的能源。 编程就像是马拉松,而不是 Sprint倒退空间是一直演变的,所以要为一直的学习做好筹备。 开始得太快,你会很快感到疲劳。 结束语如果本文对你有帮忙,请转发让更多的敌人浏览。 兴许这个操作只有你 3 秒钟,对我来说是一个激励,感激。 祝你有一个美妙的一天~ © 猫哥 ...

November 27, 2022 · 1 min · jiezi

关于程序员:介绍-10-个有用的-Flutter-软件包

介绍 10 个有用的 Flutter 软件包 原文 https://genotechies.medium.co...前言FLutter 软件包使您的开发简略疾速。然而,有利有弊。有时候,如果从头开始开发这个个性将是无益的,因为可定制的软件包较少。此外,咱们还能够看到许多风行的软件包,它们总是为这个特定性能提供抉择。在这里,我探讨每个根本细节的十个包。而后你就能够决定是否应用它们。咱们去找他们每一个人。 注释qr_flutterhttps://pub.flutter-io.cn/pac... 如何增加一个二维码到你的 Flutter 应用程序。这是最简略的办法做到这一点。 将 qr_flutter 包增加到依赖项中dependencies:qr_flutter: ^4.0.0并将 qr_flutter 包导入到文件中。能够应用 QR Image widget 。import 'package:flutter/material.dart';import 'package:qr_flutter/qr_flutter.dart';void main() => runApp( MyApp());class MyApp extends StatelessWidget {MyApp({Key? key}) : super(key: key);@overrideWidget build(BuildContext context) {return MaterialApp(home: Scaffold(appBar: AppBar(title:Text("QR Code Flutter"),),body: Center(child:QrImage(data: "Hello",version: QrVersions.auto,size: 200,),),),);}}这是输入。 您能够在扫描代码时取得插入到数据属性中的输入。 Flutter Google Maps(google_maps_flutter)https://pub.flutter-io.cn/pac... 如何应用谷歌 map 在您的 Flutter 应用程序?该软件包用于通过谷歌 map 数据增加 map 数据。应用这个软件包,您能够拜访谷歌 map 服务器, map 显示,并拜访用户手势。此外,您还能够增加 map 标记,创立信息窗口,使 HTTP 申请谷歌方向,API 的路线信息,显示折线和动画的 map 。对于所有这些,您须要一起应用上面的 flutter 软件包。 ...

November 27, 2022 · 3 min · jiezi

关于程序员:Flutter-中使用-extension-使项目更具可读性和效率-01

Flutter 中应用 extension 使我的项目更具可读性和效率 01 原文 https://medium.com/@bedirhans...前言 代码的可读性和实用性在《 Flutter 》中十分重要。明天咱们将编写一些 extension 并查看它们的用法。注释1. 图像文件的 extension 名咱们都将图像文件增加到文件中。咱们很多人把它们定义为 Image.asset (‘ asset/images/image. png’)。相同,咱们能够这样做; 咱们能够像上面这样应用这个 extension ; 2. 表单验证和列表操作的 extension假如您有一个电子邮件表单,并心愿确保用户曾经为其输出了“@”符号。或者你有一张清单,你想把它倒过去。这里有一个简略办法的 extension ; 3. 空填充的 extension应用 SizedBox,咱们能够在两个 widget 之间留出空间。例如 SizedBox (高度: 10)。然而你不会想到处看到这个的,肯定有一个简略的办法来解决它。就是这个 要应用它,咱们只须要 4. 解析操作的 extension有时候,您心愿将 int 值转换为 double 或者心愿转换 int 值的其中一个 double 表达式。 你能够这样应用它; extension ,临时就这些。当初,让咱们将在我的项目的许多页面上应用的表达式作为函数来编写。1. 我在很多中央应用这种构造,我想; “既然我始终在用,我就不能让它简略点吗?” 我做到了。 2. 应用时; 3. 咱们可能想要显示一些长文本,尽可能多的字符,因为咱们想要的。 ...

November 25, 2022 · 1 min · jiezi

关于程序员:著名黑客成推特实习生谷歌神秘项目曝光iPhone-15-全系-C-口-|思否周刊

40S 新闻速递驰名黑客成推特实习生,负责修复搜寻性能Windows 8.1 将于明年 1 月 10 日进行反对英国对苹果和谷歌挪动浏览器开展反垄断考察程序员陪马斯克奋战到深夜:没想到光速被裁谷歌神秘我的项目 “Pitchfork” 曝光:AI写代码 抢程序员饭碗追随欧盟步调,印度也将出台法规要求苹果 iPhone 改用 USB-C 端口iPhone 15 或辞别纯直边,供应链确认 iPhone 15 全系 C 口《人月神话》作者、图灵奖得主 Frederick Brooks 逝世Oracle Linux 8.7 正式 GA微软称 WSL 达到了 GA 阶段跨语言 RPC 框架 gRPC 1.51.0 公布行业资讯驰名黑客成推特实习生,负责修复搜寻性能据外媒报道,曾破解 iPhone 的驰名黑客乔治·霍茨(George Hotz)在马斯克的领导下,在推特开始了为期 12 周的“实习”。霍茨说,他在推特的首要任务是修复其搜寻性能。霍茨向推特员工示意,本人反对马斯克“极其硬核”的高强度工作要求,因为他认为“这种工作态度造就了不堪设想的成绩”,随即开始了这次“实习”。乔治·霍茨正在寻找机会为推特的搜寻性能制订修复程序。他在一条推文中示意,他要做的工作包含更容易找到搜寻性能的高级修饰符,并使该性能不那么依赖于输出想要查找的确切文本。 Windows 8.1 将于明年 1 月 10 日进行反对微软将于 2023 年 1 月 10 日进行对 Windows 8.1 的反对,且不提供扩大反对包。对 Windows 8.1 用户而言,抉择只有两个:购买新 Windows PC,或者付费降级到 Windows 10 或 11。1 月 10 日之后,微软将进行向 Windows 8.1 提供安全补丁,意味着用户将会面临更大的平安危险。如果 Windows 8.1 想要降级,鉴于 Windows 11 进步了硬件需要,大部分 Windows 8.1 PC 可能满足不了降级条件,只剩下降级到 Windows 10 这一选项。微软将会始终反对 Windows 10 到 2025 年 10 月 14 日。 ...

November 25, 2022 · 2 min · jiezi

关于程序员:计算讲谈社第十三讲|未来-40-年碳中和可能带来哪些深远影响

将来 40 年,随着“碳中和”的继续推动,“碳中和”会对集体、企业产生怎么的影响?【计算讲谈社】第十三讲上线,阿里巴巴研究员吴翰清(道哥)携学员对此开展分享探讨。https://www.youku.com/video/X... 讲师介绍吴翰清(道哥):阿里巴巴研究员,阿里巴巴、淘宝、支付宝平安体系创建者,《白帽子讲 Web 平安》作者,MIT TR35 中国互联网安全畛域入选第一人,阿里云城市大脑晚期建设者之一,目前工作于大规模计算和人工智能畛域。 学员介绍王刚(玄瞳):阿里云 AI 产品专家,北京大学计算机硕士,深度强化学习和动作辨认方向。 陈新(骏维):阿里云高级产品专家,深耕 CDN 畛域。 于开丞(杰柯):达摩院算法专家,瑞士联邦理工博士,深耕视觉模型和 AutoML,阿里星。 谭冠群(君扬):阿里云高级产品专家,深耕平安畛域。 肖子彤(栖风):阿里云技术专家,秘密计算方向,DEFCON CTF 寰球总决赛冠军,阿里星。 江波(云联):阿里云高级产品专家,深耕云计算金融畛域。 范佳莹(嘉壹):阿里云高级产品专家,深耕产业智能-数字医疗方向。 袁华良:国内视频 AI 产品晚期建设者,深耕视频云和人工智能联合畛域。 【大咖说】是什么?简介:【大咖说】是阿里云推出的内容版块,由“大咖”主讲,提供理念、思维、方法论、趋势等内容,模式有嘉宾演讲、对话访谈等,意在通过传递“信息和观点”,表白对将来的洞察。(百度搜寻【阿里云大咖说】,观看更多精彩内容~) 【计算讲谈社】是什么?简介:【计算讲谈社】是由阿里云【大咖说】推出的子系列,由吴翰清(道哥)主讲、联结八名学员和各领域专家,以“讲”和“谈”的模式,独特探讨“计算将来”;主张从本源上思考问题,敢于对固化“常识”或“教训”提出质疑,意在培养人才和积淀有价值的内容。

November 25, 2022 · 1 min · jiezi

关于程序员:常用设计模式讲解史上最简短

这篇文章会简略粗犷地解说一下罕用设计模式,算是一个汇总,不会作具体地解说零碎设计从设计准则开始,在过程中会自然而然发现须要退出模式的中央。所有的准则都不是必须恪守的,要思考全局进行舍取,经常要折中。 所有的设计模式都是一种思维,即便在某种场合下没有方法实现惯例的写法,然而用到它们的思维就能够了。尽可能放弃设计的简略,只有真正须要模式时才应用,复杂度个别与灵活性正相干。 应用设计模式的目标:在不扭转设计好的运行框架的前提下,需减少性能是只须要额定增加一个类,而后就能够在零碎运行时减少性能 适配器模式可能被适配的指标类肯定有着可重写的接口,可能被适配的指标函数肯定是虚函数 代码class Adapter : public absClassA{ absClassB* realInstance; //被适配 def func() override { //Todo:调用realInstance的一些办法 }};设计准则尽量减少一个类中对于其它类的援用,以缩小调用一个性能须要.进去的次数 装璜者模式这个模式中应用继承是为了可能做到类型匹配,因为一个对象在被装璜之后还必须是原来的那个对象类型。不能因为装璜而扭转本人的类型。一个化了妆的人还是一个人可能被装璜的类肯定有着可重写的接口,可能被装璜的函数肯定是虚函数 代码class Decorator : absClass{ absClass* realInstance; //被装璜者 def func() override { realInstance->func(); //Todo:do more something }};设计准则对扩大凋谢,对批改敞开 代理模式代理(proxy):代表特定实例可能被代理的类肯定有着可重写的接口,可能被代理化的函数肯定是虚函数 创立代理通常会应用工厂办法 代码class Proxy : absClass{ absClass* realInstance; void func() override {#if 0 //爱护代理 //通过一些条件管制对realInstance的拜访 if(满足条件) realInstance->func();#elif 0 //虚构代理 if(realInstance != NULL) realInstance->func(); else //开启异步线程创立absClass实例 //或 执行默认操作#else //近程代理 realInstance->func(); //func通过网络和近程实例通信#endif }};比照装璜者模式的目标是为对象加上行为,而代理模式的目标是管制对对象的拜访 其余代理近程代理:代表特定近程实例防火墙代理:公司防火墙零碎智能援用代理:援用计数缓存代理:Web服务器同步代理:JavaSpace简单暗藏代理(外观了解):字典写入时复制代理:Java5的CopyOnWriteArrayList观察者模式察看感兴趣的事物 或者 事件代码class Subject //能够被蕴含{ absClass*[] observers; //外围数据结构}设计准则对象之间放弃松耦合 ...

November 25, 2022 · 2 min · jiezi

关于程序员:今天开始撰写技术Blog之旅

明天查看了N篇技术Blog比照的文章,最终抉择了思否(segmentfault),这篇文章也代表我的正式入住,前面会开始陆续编写技术Blog。 之前自己在2011年左右,也搭建过集体Blog服务器,搞了近3年,写了300+篇文章,有点太费精力了,前面就没有持续。 多年之后再次启程,心愿这次能坚持下去,

November 25, 2022 · 1 min · jiezi

关于程序员:总结我的-MySQL-学习历程给有需要的人看

作者| 慕课网精英讲师 马听 你好,我是马听,当初是某批发公司的 MySQL DBA,身处一线的我示意有很多话要讲。 我的MySQL学习历程 在我大三的时候,就开始接触到 MySQL 了,过后我也是从最根底的 MySQL 常识(比方建表、字段批改、增删查改等)开始学习的,当学完简略的语句之后,感觉特有成就感:),认为本人在 MySQL 方面曾经很强了,感觉 MySQL 用起来无非也就这些内容,还能有什么? 直到刚毕业入职某互联网公司时,公司电商业务的数据库忽然呈现高负载报警,并且业务反馈很多接口都出奇的慢,这时一位数据库运维共事马上连上数据库,在执行了几条命令后,就确定了是慢查问导致数据库高负载的,通过改写 SQL 语句能让性能失去改善。他马上告诉开发改写了代码,发完版之后负载立马下来了。 此时,我理解到身处火线的咱们,随时随地会遇到各种“麻烦”,而面临这些境遇就要求咱们必须零碎的进步和优化对于数据库的治理。比方,进行数据导入时,如何进行优化 ?工作中有一次,开发一个共事想在他的测试环境导入一张大表,他发现每次都要花半小时以上,就找到了我帮忙,看完他的 MySQL 参数配置后,我会发现其实有些参数能够调整的,调整完之后,让他再持续测试,发现不到 10 分钟就搞定了,是不是高效了很多,MySQL 的优化中有太多这样例子了。那俗话说:磨刀不误砍柴工,咱们花越多的工夫来学习,其实也是为进步工作时效率,节约了咱们更多的工夫,上面咱们一起来深入研究下 MySQL 优化和晋升时外面的要点和细节吧。 哪些人须要学习MySQL 优化说了这么多,那到底有哪些人须要学习 MySQL 优化呢? 首先,当然 DBA 是必须学习的,因为剖析慢查问,并且去优化慢查问是 DBA 的工作之一。其次,开发也应该学习 MySQL 优化,我以前遇到过一个开发能力比拟强的共事,去 BAT 某大厂面试开发工作,其余技术根本没问题,而当问到 MySQL 索引和事务以及优化相干问题时,就卡住了,最终错失进入大厂的机会,人生真的好难…泪奔。不单单面试,在工作中,如果开发懂得数据库优化,很多状况就不必 DBA 来审核找出问题再回过头去改代码,会大大节约了工夫老本,完满 :)当然,其余对于 MySQL 感兴趣的人,也是能够学学优化技巧的,欢送欢送欢送,让你的 SQL 执行效率更高。 晋升MySQL程度形式 分享下我本人学习 MySQL 的历程,小伙伴们有须要的能够借鉴下,在这里,总结一下我的 MySQL 晋升程度的形式: 如果你没有 MySQL 的根底,倡议能够看上面两本书籍,看完之后,能够简略解决一些优化:《MySQL 必知必会》:次要讲 SQL 的写法;《深入浅出 MySQL》:比拟全面的解说了 MySQL 的基础知识,也波及了一些优化。如果曾经对 MySQL 比拟相熟了,能够看上面的书籍,你会对索引和锁以及事务等有全新的认识:《高性能 MySQL》:外面讲了很多 MySQL 优化技巧;《MySQL 技术底细》:解说了很多 MySQL 原理,强力举荐给想深刻学习 MySQL 的同学;《MySQL 内核:InnoDB 存储引擎》:想深入研究 MySQL 内核及原理的能够看看;《MySQL 运维内参》:对 MySQL 源码感兴趣,能够动手;《MySQL Internals Manual》《MySQL 5.7 Reference Manual》如果曾经把握了 MySQL 的基础知识,大家能够依照如下常识脉络进行深刻学习: ...

November 24, 2022 · 1 min · jiezi

关于程序员:K8S杂记

一、部署(1)kubeadm工具: •kubeadm init:初始化一个Master节点•kubeadm join:将工作节点退出集群•kubeadm upgrade:降级K8s版本•kubeadm token:治理 kubeadm join 应用的令牌•kubeadm reset:清空 kubeadm init 或者 kubeadm join 对主机所做的任何更改•kubeadm version:打印 kubeadm 版本•kubeadm alpha:预览可用的新性能(2)初始化配置 # 敞开防火墙systemctl stop firewalldsystemctl disable firewalld# 敞开selinuxsed -i 's/enforcing/disabled/' /etc/selinux/config # 永恒setenforce 0 # 长期# 敞开swapswapoff -a # 长期sed -ri 's/.*swap.*/#&/' /etc/fstab # 永恒# 依据布局设置主机名hostnamectl set-hostname <hostname># 在master增加hostscat >> /etc/hosts << EOF192.168.31.61 k8s-master1192.168.31.62 k8s-node1192.168.31.63 k8s-node2EOF# 将桥接的IPv4流量传递到iptables的链cat > /etc/sysctl.d/k8s.conf << EOFnet.bridge.bridge-nf-call-ip6tables = 1net.bridge.bridge-nf-call-iptables = 1EOFsysctl --system # 失效# 工夫同步yum install ntpdate -yntpdate time.windows.com(3)装置docker ...

November 24, 2022 · 2 min · jiezi

关于程序员:MacOS-如何选择鼠标不飘滚动平滑

MacOS 如何抉择鼠标不飘滚动平滑前言 明天不务正业的聊聊 macos 下的鼠标的事件,群里也有敌人和我聊,正好说说这事。 我在很长的工夫里都在用 macbook pro 的触控板 + 键盘的高效模式,因为触控板和键盘很近所以效率很高。 然而有一个问题就是在高强度的码字编码后,手指有点磨皮了,你懂的这个触控板是光面的。 在家办公的时候我会用秒鼠鼠标+苹果小键盘,连 24 寸 4k 屏幕工作,这也很高效,秒鼠多屏幕切换,小键盘按键少不会按错。 但始终有个心结就是这个秒鼠尽管很美学,太也太光太平太硬了,点按、滚轮反馈、多功能键都不是很现实。 所以我就开始推敲如何在 macos 上用传统鼠标,当初分享给大家。 如果你没有以上问题,就能够不必往下看了。 整顿需要 打造舒服工作环境作为程序员,毕竟每天都在长时间应用的工具,还是要调整的棘手点。 性价比并不是越贵越好,咱们当然是心愿少花钱找到适宜本人的工具。 鼠标发飘发飘问题就是挪动一个单位或者滚动一个单位忽然就过来了没有平滑过渡,很多优良的游戏鼠标、旗舰鼠标,在 macos 上间接翻车。 显然不可能是硬件问题,只能是驱动问题,当初大厂也在做 macos 的驱动,比方罗技 Logi Options+,然而优化的不是很现实,这点罗技真的要加油了。 夸多设施 flow 就是一个鼠标能够在 macos windwos ipad 多个设施间游走,须要这个性能的,能够间接看罗技的办公鼠标。 尺寸 长宽高确定你的手掌大小,而后抉择适合的鼠标,不要太大也不要太小。 持握鼠标的姿态。 查看鼠标的尺寸参数。 滚轮 金属 有限有限滚轮很多罗技鼠标都配置了,我是不怎么用。 https://www.logitech.com.cn/z... 静音按钮 不打搅他人在夜晚家人都劳动了,或者去自习室,图书馆,不想打搅他人,能够应用静音按钮。 分量太重的预计会手酸吧,尽管你是习武之人。 我还是喜爱轻点的鼠标。 性能建数量,程度滚动程度滚动就是左右滚动,这个性能我觉得很有用,比方在 vscode、浏览器中。 失常都是 6~8 个功能键,个别也够用。 ...

November 23, 2022 · 1 min · jiezi

关于程序员:Flutter-实现背景-Parallax-动画

Flutter 实现背景 Parallax 动画 原文 https://arkapp.medium.com/bac...前言 咱们将创立咱们的 Flutter 我的项目惊人的 Parallax 动画。 在本文中,咱们将实现一个简略的实用工具 widget ,它将在任何 widget 之上增加 Parallax 成果。 注释创立 Base Widget让咱们创立咱们的根底 widget ,咱们将增加 Parallax 动画。在 BaseWidget 中,咱们将从 Asset 目录增加一个图像。稍后,咱们将增加 Parallax 成果到这个图像。 import 'package:flutter/material.dart';class BaseWidget extends StatelessWidget { const BaseWidget({super.key}); @override Widget build(BuildContext context) { ///We will add parallax effect to this image return Image.asset( 'assets/moon.webp', width: MediaQuery.of(context).size.width, height: MediaQuery.of(context).size.height, ); }}创立 Parallax widget当初咱们将创立一个实用工具 widget ,它将为下面的 BaseWidget 增加 Parallax 成果。这将是采纳子窗口 widget 作为结构函数参数的状态窗口 widget 。 ...

November 23, 2022 · 4 min · jiezi

关于程序员:Flutter-8-个优秀动画-Packages

Flutter 8 个优良动画 Packages 前言动画对于使挪动应用程序的用户界面感觉天然晦涩至关重要。加上交互式元素和平滑的过渡,它们使应用程序简略易用。 注释Flutter Animate 组件 Packagehttps://pub.dev/packages/flut... 一个 performant 库,使得在 Flutter 增加简直任何模式的动画成果都很简略。 事后建设的成果,如褪色,缩放,幻灯片,翻转,含糊,触动,微光,和色彩成果(饱和度和浅色)简略的自定义成果和简化的动画构建器同步动画滚动,告诉,或任何货色综合流动 所有这些都是通过一个简略的、对立的 API 实现的,而不须要与 AnimationController 和 StatificWidget 混同。 Flutter Animate 是一个 库 libraries ,它使得在 Flutter 增加简直任何类型的动画成果变得简略。该库提供了各种事后构建的产品,如突变、缩放、幻灯片、含糊、抖动、微光和色彩成果(饱和度和浅色) ,这些都能够很容易地增加到您的应用程序中。 此外,Flutter Animate 简化了创立自定义动画构建器的过程,使得动画与滚动事件、告诉器或其余任何货色的同步变得容易。凭借其对立的 API 和集成的事件, Flutter 动画是现实的解决方案为您的动画的须要。 Curved Navigation Bar 组件 Packagehttps://pub.dev/packages/curv... 一个轻松实现的弧形导航条的 Flutter 软件包。新的曲线导航栏是一个惊人的除了任何挪动应用程序。您能够调整它的色彩,背景和动画曲线为您想要的外观!它甚至带有可定制的动画,将齐全适宜你,所以不要错过这一个! Simple Animations 组件 Packagehttps://pub.dev/packages/simp... 动画是一个平凡的形式增加款式和动画到您的应用程序。通过 simple_animations,您能够立刻创立自定义动画!不须要有状态的 widget 或简单的代码ーー只需从设施中抉择将被动画化的属性,而后单击“ Animate” 您不仅能够拜访规范的开始/完结状态,还能够拜访不同的淡入/淡出速度,具体取决于这里最适宜的成果(优雅)。 Simple Animations 简化了创立丑陋的自定义动画的过程: 在无状态 widget 中轻松创立自定义动画一次动画多个属性在几秒钟内创立交织的动画应用 AnimationController 实例简化操作调试动画Shimmer Animation 组件 Packagehttps://pub.dev/packages/shim... ...

November 23, 2022 · 1 min · jiezi

关于程序员:什么认证在云计算行业内的含金量最大考试费用贵不贵

作为一个新兴倒退起来的技术,云计算在社会生产中的作用越来越重要,各家企业纷纷转型,心愿能借用新技术,取得新的倒退。这样一来市场就须要大量的新人才来保护运行,然而云计算作为新兴技术,还没有被大量引入本科院校中,多在职业院校中设立,然而很多学生不违心抉择职校,这就导致了人才的缺失。 为了为社会输送人才,市场上的很多云技术厂商纷纷推出了本人的人才认证,其中阿里云的人才认证含金量是最高的。阿里云是目前国内惟一一家领有自主钻研的云计算零碎的厂商,而且起步早,占国内市场最大,曾经做到了世界第三、亚洲第一。 阿里云云计算等级 1、阿里云ACA认证 阿里云云计算助理工程师认证是面向应用阿里云根底产品的业余技术认证,次要波及阿里云的计算、存储、网络、安全类的外围产品,是对学员把握阿里云次要产品技术技能程度的全面测验和能力认证, 次要面向学生群体及开发者,也能够做为运维人员的入门证书。 考试内容: 阿里云简介阿里云弹性计算阿里云存储服务阿里云网络阿里云云数据库阿里云CDN阿里云云上平安防护 考试工夫:60min 考试模式:线上 考试费用:600 2、阿里云ACP认证 阿里云云计算工程师认证是面向应用阿里云云计算产品的架构、开发、运维人员的业余技术认证。包含口试和试验考试。 考试内容: 云服务器 ECS 弹性伸缩(Auto Scaling) 负载平衡 SLB 专有网络 VPC 对象存储 OSS 内容散发网络 CDN 平安(云盾、云平安) 云计算通用常识 考试工夫:120min 考试模式:线下 考试费用:1200 3、阿里云云计算ACE考试 阿里云云计算架构师ACE认证(Alibaba Cloud Certified Expert - Cloud Architect)是针对云架构师,解决方案架构师,云运维专家等技术人员的阿里云高级别技术认证。通过该技术认证能够无效证实该认证人员具备丰盛的需要剖析能力,云架构设计能力,云架构部署施行能力,云架构诊断和调优能力,洞察业务痛点,制订无效的技术改良计划,最大限度地进步零碎架构可扩展性,安全性,可靠性,耐用性和老本效益等个性。 考试内容:私有云-平安-基础设施、业务&数据 私有云-存储 私有云-计算 私有云-架构 私有云-数据库 私有云-网络、组网 私有云-原生-容器、微服务&中间件 混合云 除此之外还有试验考试和面试,心愿具体理解的人,能够在认证大使上查问。 考试工夫:120min 考试模式:线下 考试费用:9600

November 22, 2022 · 1 min · jiezi

关于程序员:为什么要学爬虫

作者| 慕课网精英讲师 梁睿坤 大家好,我是梁睿坤,是一家智能科技公司的联结创始人,从明天开始咱们就将一起开始探讨 “网络爬虫” 这个话题了。 随着时代的倒退,互联网成为了大量信息的载体,如何无效的获取这些信息成为了开发人员一个微小的挑战。因为有了这样的需要所以网络爬虫就应运而生了:网络爬虫(又被称为网页蜘蛛,网络机器人,也被称为网页追赶者),是一种依照肯定的规定,主动地抓取互联网信息的程序或者脚本。另外一些不常应用的名字还有蚂蚁、主动索引、模拟程序或者蠕虫。 简略来讲,爬虫就是一个探测机器,它的基本操作就是模仿人的行为去各个网站溜达,点点按钮,查查数据,把看到的信息给你捕捉回来。就像一只虫子在一幢楼(爬取的网站)里不知疲倦地爬来爬去。能够说,有了爬虫,你就有了“分身术”。每一个爬虫都是你的分身,帮你在互联网上获取你所须要的数据。 咱们日常生活中离不开的搜索引擎其实就是一个微小的爬虫,当咱们在百度的输入框中输出你想搜寻的问题,并点击“百度一下”的时候,百度这个微小的爬虫就会启动,并且会主动在互联网上依据你输出的关键词进行匹配,如果有匹配到的后果,爬虫就会把后果出现在你的背后。 咱们来举个例子:你是A公司的员工,B公司是你们的竞争对手。你的 Leader 让你获取竞争对手网站上商品的价格、简介还有购买人数等等信息来做竞品剖析。这个时候你怎么办呢?手动去Ctrl+C和Ctrl+V?的确能够,但这是最笨的办法。数据量小的时候咱们能够这样做,然而数据成千上万的时候你还要这样做吗? 你说能够找他人帮忙,然而你就不想本人入手写一个爬虫程序,在极短的工夫内把你想要的数据抓取下来并且整顿成数据表格,而后在你的 Leader 须要的时候甩到他的脸上吗? 当然了爬虫能做的不仅仅只有这些,它的实力很弱小。 在学习爬虫之前你须要把握以下的一些基础知识: 网络爬虫中罕用的Python基础知识HTTP协定通信原理(咱们在浏览网页的时候是怎么的一个过程,他是如何形成的?)HTML、CSS、JS入门根底(把握网页构造以及从网页中定位具体的元素)具备了这些根底,你就能够开始欢快的学习爬虫了。不过很多敌人依然有纳闷:学完爬虫之后有什么用呢? 在最新的编程语言排行榜上,Pyhton超过Java,成为了榜一,越来越多的程序员抉择Python,甚至有人说,应用Python是“面向未来编程”。对于Python与“爬虫”的关系,我想不必多说你也能看进去爬虫的炽热水平。 其次,把握爬虫技术后,你会看到很多不同风光,在你应用爬虫爬取数据的过程中,你会感到十分好玩儿,置信我,这种趣味性和好奇心,会让你对Python有一种天生的青睐感,为让你有深刻学习Python的能源。 另外,在这个数据为王的时代,互联网上充斥着大量不拘一格繁冗的数据,咱们要从这个宏大的互联网上来获取到咱们所须要的数据, 爬虫是不二之选。无论是过来的搜索引擎,还是时下火爆的数据分析,都离不开爬虫,除了好玩之外,爬虫是实实在在有十分多的用武之地的,事实上,很多公司在招聘时,对爬虫也是有要求的。 咱们应用Python开发爬虫,Python最弱小的中央不在于语言自身而是其宏大而沉闷的开发者社区和上亿量级的第三方工具包。通过这些工具包咱们能够疾速的实现一个又一个的性能而不必咱们本人去造轮子,把握的工具包越多,咱们在编写爬虫程序的时候也就越不便。另外,爬虫的工作指标是“互联网”,所以HTTP通信和HTML、CSS、JS这些技能在编写爬虫程序的时候都会用的到。不过不必放心,即便你对这些技术不太理解,在学习了本专栏之后也可能轻松的将这些常识使用到咱们的爬虫程序中去。 作为开发人员,代码是最好的老师,在实践中学习,间接靠代码谈话,是咱们程序员的学习形式,所以,在设计这个专栏的时候我从泛滥素材中选出了几种具备代表性的课题,咱们一起开发几种不同类型的爬虫,理论生产中,咱们所须要的数据个别也逃不过这样的页面构造: 新闻供稿专用爬虫——爬取RSS订阅数据网易新闻爬虫——泛爬网技术网易爬虫优化——大规模数据处理技术豆瓣读书爬虫——测试驱动设计与高级反爬技术实际蘑菇街采集——解决深度继承javascript网站慢速爬虫的利用举例——知乎爬虫 说到这里,大家还在等什么呢?当初就开始学习爬虫吧,玩爬虫,用爬虫,大家加油啊。

November 22, 2022 · 1 min · jiezi

关于程序员:Flutter-应用程序中的-Quick-Actions

Flutter 应用程序中的 Quick Actions 原文 https://medium.com/vijay-r/qu...前言在这篇文章中,咱们将探讨如何增加 Quick Actions 在咱们的 Flutter 应用程序,使咱们的应用程序更加敌对的用户。 注释插件 quick_actionshttps://pub.dev/packages/quic... 施行QuickActions 容许用户间接从他们的设施主屏幕与应用程序交互。 首先,让咱们创立一个简略的应用程序,它蕴含两个独立的屏幕,第一个页面屏幕和第二个页面屏幕,以及两个晋升的按钮,当咱们按下它们时,它们将导航到相应的第一个或第二个页面屏幕。 当初,让咱们初始化 quick actions 并在其中增加 ShorcutItems,如下所示。 运行测试如果咱们当初尝试运行咱们的应用程序,咱们将可能看到疾速的口头,只需按住应用程序图标。 退出图标咱们当初曾经胜利地实现了 Quick Actions 性能在咱们的 Flutter 应用程序。然而,如果咱们看到图像(显示在上面) ,咱们会留神到尾部的图标作为一些点。默认状况下,咱们失去这个点图标时,咱们尝试增加 Quick Actions,而不提供咱们的自定义图标图像。 因而,让咱们尝试为 android 和 iOS 增加咱们自定义的图标图像。 Something 对于 android,咱们须要在 android/app/src/main/res/drawable 文件夹中增加图标图像。 ➡️ 对于 iOS,咱们须要在 Xcode 中关上我的项目,只需右键单击我的项目目录中的 ios 文件夹即可。 而后,咱们须要在 Runner/Runner/Assets/ (如下所示)中增加图标图像 当初尝试卸载应用程序,并重新安装它,以可视化的变动。 就是这样,这就是咱们如何将疾速动作 integrate 到 Flutter 应用程序中的办法 代码https://github.com/vijayinyou... 结束语如果本文对你有帮忙,请转发让更多的敌人浏览。 兴许这个操作只有你 3 秒钟,对我来说是一个激励,感激。 ...

November 22, 2022 · 1 min · jiezi

关于程序员:谷歌微软Meta谁才是-Python-最大的金主

你晓得保护 Python 这个大规模的开源我的项目,每年须要多少资金吗? 答案是:约 200 万美元! PSF(Python 软件基金会)在 2022 年 6 月公布了 2021 的年度报告,其中披露了以下这份收入明细(单位:千美元): 总支出金额 196 万美元,根本与 2020 年持平,不晓得这个数额有没有超出你的预期呢? 另外,在支出方面,2021 年总收入为 271 万,因而年度净结余为 75 万。(PS.加上之前的资产,目前基金会还有 506 万~) PSF 是一个独立的非营利性机构, 致力于促成 Python 语言的倒退与推广、促成 Python 国际化多元化社区的凋敝。尽管不以营利为指标,但不可否认的是,它也有着一笔不菲的金钱诉求:有更多的支出,能力实现更大的指标,能力施展出基金会的更大价值。 比方,只管 PSF 在 2001 年就成立了,然而,直到 20 年后,它才领有了第一位全职的开发者!也就是说,长久以来,基金会的其余成员及外围开发者们都只是兼职或志愿者! 未来若有更多支出的话,PSF 很有可能会再次扩员全职的开发者,必然能发明出更多的可能性! (2021年在“Program Service”单项上的收入) 既然 PSF 开销不小,诉求也大,那么,它目前的资金是怎么来的呢? PSF 次要的资金来源是大大小小的金主所资助,比方,JetBrains(Pycharm 出自这家公司)凑巧正在为 PSF 举办年初筹款。通过以下链接能够 7 折购买 Pycharm Pro,全副销售额将募捐给 Python。 JetBrains 流动(2022.11.22完结):https://blog.jetbrains.com/zh-hans/pycharm/2022/11/jetbrains-pycharm-python/PSF 将赞助者们分成了七类:近景的(Visionary)、继续的(Sustainability)、放弃的(Maintaining)、奉献的(Contributing)、反对的(Supporting)、搭档的(Partner)、联结的(Associate)。 题目中的谷歌、微软、Meta 都是 PSF 最高级别的近景赞助者。然而,谁才是 Python 最大的金主呢? ...

November 21, 2022 · 2 min · jiezi

关于程序员:没必要阅读-Vue-源码吧

Vue 的渐进式设计使得它非常容易上手,在最简略的状况下,咱们只须要引入 Vue 的 JS 文件,而后 new Vue() 即可应用申明式渲染。 Vue 的文档编写也比拟优良,不便使用者一步一步深刻理解 Vue 各个个性的应用。既然如此,为什么咱们还须要浏览 Vue 的源码呢,间接看文档学习它的应用不就能够解决问题了吗? 这个问题能够从两方面来解答。 他山之石 可以攻玉前端技术的倒退十分快,各种类库、框架、解决方案始终层出不穷。即使像 Vue 现在如日中天,其火起来的工夫也不过短短三五年。而工夫往回推几年,风行的却是 jQuery、backbone.js 之类的计划。因而,Vue.js 也有可能过期,仅仅把握 Vue 的应用是远远无奈跟上前端的倒退脚步的。 Vue 的源码中有不少经典的解决问题的办法,把握这些才算是真的学到了一些前端精华。即使当前 Vue 不再风行,这些学习到的办法也是不会过期的。例如时下风行的 JSX、虚构 DOM、数据变更的监听检测、观察者模式的应用等,都是十分有学习价值的问题解决方案。 此外,Vue 作为一个通用框架,诚然能帮忙咱们解决很大一部分的问题,然而当利用复杂度回升当前,仅仅依附 Vue 没有方法齐全解决我的项目中碰到的问题。因而在碰到简单的我的项目场景时,依然须要大量的前端基础知识技能,而 Vue 的源码中有很多问题的解决方案,如果熟练掌握这些计划,将会使咱们事倍功半。 知已知彼 百战不殆在大部分状况下,咱们仅仅须要依据 Vue 的官网文档来应用,就足以解决我的项目中的问题。然而在我的项目场景简单时,依然可能碰到一些文档没有笼罩的问题。此时咱们可能须要先理解 Vue 底层的实现计划(如 nextTick、render 等),而后剖析出最合适的解决办法。 另一种状况是当咱们将一些解决方案利用到 Vue 不能笼罩的局部时,如果不能深刻理解 Vue 的底层实现机制,就很难防止一些底层机制的抵触。此时只有咱们深刻理解 Vue 的源码,能力对这些解决方案做出主观的评估,以决定是否应该利用到我的项目中。 其余起因除此之外,仅仅从价值的角度来说,也有越来越多的公司在招聘的时候会要求把握一些框架的实现原理,除了上述说的学习和利用的起因外,是否能把握一些在用的框架的原理,也能够视作学习态度的一个体现。 综上,作为一个合格的 web 前端工程师,对 Vue 的源码做肯定深度的学习是十分必要的。

November 21, 2022 · 1 min · jiezi

关于程序员:使用-ISAR-数据库提供离线-Flutter-支持

应用 ISAR 数据库提供离线 Flutter 反对 译文 https://medium.com/@tkarmakar...前言这是我的口头禅,我试图遵循我的 利用 application 。对于那些针对二三线城市的面向客户的应用程序,应优先思考离线反对。 咱们能够应用像 SQLite 这样的关系数据库,也能够应用由 Hive、甚至 Isar 提供的非关系数据库。 在这个博客中,咱们将深入研究工作原理,理解 Isar 数据库的应用过程和易用性。 注释什么是 Isar 数据库?ISAR 数据库是一个超疾速的跨平台 Flutter 数据库。 以下是 Isar 的一些特色和亮点, 为 Flutter 而生高度可 extension特色丰盛反对全文搜寻ACID 语义学动态类型Something 异步开放源码施行让咱们看看如何能够轻松地实现在咱们的 Flutter 应用程序 Isar 数据库。 首先,咱们必须理解咱们的应用程序应该可能执行什么。 故事工夫。对于本教程,咱们有一个药物库存应用程序,是由代表应用增加,删除和更新他们的药物库存。 假如该代表将拜访偏远地区销售这种药物,咱们必须施行残缺的离线反对,使他能够执行所有的过程离线和数据失去自动更新,当有互联网连贯。 数据流应用程序启动并检查数据。如果是,它从数据库中获取所有药物并存储在 Isar。如果没有,它将从 Isar 获取数据并填充数据。保留在 ISAR 数据库中的数据蕴含一个 isSynces 标记,该标记示意数据与 firebase 同步的天气。每当一种新的药物被增加,如果有互联网,它会同时更新 Isar 和火力基地,否则它会更新 Isar 与 isSynced 标记为假。剪辑也一样。删除每个删除的我的项目将增加到一个列表中,并从 Isar 删除。一旦有了连贯,它就会更新数据库。为了使数据始终保持同步,每隔 30 秒应用一个定时器查看连贯状况,并且整个数据库与在线数据库同步。咱们开始编程吧我将假如您曾经创立了该我的项目和集成的 Firebase,因而咱们有权拜访 Firebase 的 firestore。 让咱们集成网络查看器,以便让连贯状态始终存在。 为此咱们将应用, connectivity_plushttps://pub.dev/packages/conn... ...

November 21, 2022 · 4 min · jiezi

关于程序员:Flutter-动态更改应用程序启动图标

Flutter 动静更改应用程序启动图标 前言在这篇文章中,咱们将探讨如何在运行时在咱们的 flutter 应用程序中动静更改多个应用程序启动器图标。 依赖包一个用于动静更改挪动平台上应用程序图标 flutter 插件。 https://pub.dev/packages/flut... 注释施行思考到咱们曾经筹备好了根本的 UI (蕴含图像和晋升的按钮 widget )。 import 'package:flutter/material.dart';class MyHomePage extends StatefulWidget { const MyHomePage({Key? key, required this.title}) : super(key: key); final String title; @override State<MyHomePage> createState() => _MyHomePageState();}class _MyHomePageState extends State<MyHomePage> { int iconIndex = 0; List iconName = <String>['icon1', 'icon2', 'icon3']; @override Widget build(BuildContext context) { return Scaffold( appBar: buildAppBar(appBarTitle: widget.title), body: Padding( padding: EdgeInsets.all(kSpacing), child: Column( mainAxisAlignment: MainAxisAlignment.center, children: [ buildIconTile(0, 'red'), buildIconTile(1, 'dark'), buildIconTile(2, 'blue'), HeightSpacer(myHeight: kSpacing), PrimaryBtn( btnFun: () => changeAppIcon(), btnText: 'Set as app icon'), ], )), ); } Widget buildIconTile(int index, String themeTxt) => Padding( padding: EdgeInsets.all(kSpacing / 2), child: GestureDetector( onTap: () => setState(() => iconIndex = index), child: ListTile( contentPadding: const EdgeInsets.only(left: 0.0, right: 0.0), leading: Image.asset( imagefiles[index], width: 45, height: 45, ), title: Text(themeTxt, style: const TextStyle(fontSize: 25)), trailing: iconIndex == index ? const Icon( Icons.check_circle_rounded, color: Colors.green, size: 30, ) : Icon( Icons.circle_outlined, color: Colors.grey.withOpacity(0.5), size: 30, )), ), ); changeAppIcon() {} ...

November 20, 2022 · 2 min · jiezi

关于程序员:Get-CLI-强大的项目管理-GetX-工具

Get CLI - 弱小的项目管理 GetX 工具 https://shirsh94.medium.com/g...前言一个来自 Getx 的工具能够帮忙你疾速的建设我的项目,页面和视图。 大家好,在本文中,我将探讨 get CLI 工具。如果您正在应用 getX 包,那么 get CLI 是您能够应用的弱小工具之一。有了这么多货色,咱们能够很容易地治理它。 咱们花了很多工夫创立页面控制器提供程序,并且每天都将它们绑定在一起ーー如果你正在经验这种状况,那么咱们就会日复一日地反复这个过程,因为我将向你展现如何像专业人士一样进步你的工作效率。 让咱们从 get CLI 包开始,它能够让您轻松地为应用程序创立一个残缺的 flutter 根底构造。基本上,当咱们开始一个新我的项目时,当咱们为任何性能设置任何模块时,设置控制器、视图和绑定都须要很多工夫。为此,提供 CLI 作为解决方案。 为了理解 get CLI,咱们将创立一个全新的我的项目,所以让咱们先装置 git CLI,而后启动一个终端并运行命令。 注释全局激活 get_cli 正如您在下面的图片中看到的,一旦您运行这个命令,它将在全局范畴内装置所有的依赖项库。因而,兴许您能够将它放在一个门路变量中,一旦它被全局激活。这样下次您就能够轻松地运行任何 getCLI 命令了。 让咱们持续创立咱们的第一个我的项目。那么让咱们来写这个命令。首先,关上要创立我的项目的任何文件夹。而后调用这个命令, Get create project: todo 所以,我的门路设置不正确,所以首先我设置我的门路,如果你的门路设置正确,你能够跳过门路设置命令。 在这里“待办”是我的项目名称。当初我将设置我的我的项目域名。 Example demo 留神: 如果你遇到相似。在设置公司域无奈创立我的项目之后,能够降级到 get_cli 版本。(在 1.8.1 版本中,我遇到了这个问题)so,所以, 首先,卸载以后版本(1.8.1) flutter pub global deactivate get_cli 在装置 1.6.0 之后 flutter pub global activate get_cli 1.6.0 然而,如果可能取得我的项目装置选项,您能够跳过此过程。 ...

November 20, 2022 · 3 min · jiezi

关于程序员:我是如何构建自己的笔记系统的

我是如何构建本人的笔记零碎的?对于笔记零碎的重要性互联网上有许多的材料, 我这里将不再赘述. 上面我将间接介绍我的笔记从记录到整顿文章公布的所有具体步骤和工具 我的笔记零碎可能并不欠缺, 而且带着极强的集体倾向性, 只心愿它能提供给你一种思考的方向 原文地址: https://www.yuque.com/dengjiawen8955/dsne7d/mi4tlercgrm1hw20?# 《我是如何构建本人的笔记零碎的?》 我的需要是什么?我次要做软件开发, 所以我心愿电脑记录应用 markdown 语法我会将电脑记录的系统内容整顿为文章 (从收集箱整顿到归档材料) , 公开公布到互联网 (比方知乎, CSDN, 公众号等). 我须要能一份文章能同步全平台, 而不是每次都要对每个平台做适配我须要不便查阅和回顾本人写的内容, 我心愿电脑记录的货色手机也能不便查看除了用电脑记录外, 我心愿用手机记录一些较轻的记录想法. 比方照片, 代办之类的我的工具有哪些?我从大一的时候开始记笔记, 做常识治理 我尝试过市面上很多笔记软件, 我当初仍然持有有道云笔记的, 印象笔记, flomo笔记等利用的会员; 同时还是 MindMaster 思维导图等工具的终生会员; 我尝试过用 typroa 做笔记, 我购买了 typroa 软件, 而后将笔记文件通过 OneDrive 或者 wps 同步; 我尝试过用 vscode 记笔记, 将笔记内容同步到 Github 仓库中. 因为 vscode 能应用 Copilot 插件(一个 AI 主动写代码工具, 能够主动生成笔记内容) 我还尝试过本人开发一个笔记软件, 最初因为集体和团队的起因放弃了 我当初次要应用这些工具: 语雀文档: 目前我用到过 markdown 体验最好的云笔记软件, 反对导出 markdowndu: 解决语雀导出 markdown 的图片防盗链问题 (我本人写的一个程序, 开源地址 https://github.com/dengjiawen8955/du )墨滴: 一键将 markdown 文章公布到多平台 (比方知乎, CSDN, 简书, 博客园等), 并且反对转微信公众号排版我是如何构建本人的笔记零碎的?比方以这篇文章为例子 ...

November 20, 2022 · 2 min · jiezi

关于程序员:Flutter-的缓存策略

Flutter 的缓存策略 原文 https://medium.com/@romaingre...前言在挪动应用程序中,缓存治理是一件十分重要的事件。 在本文中,我将告诉您如何在我的公司 Beapp 中设置策略缓存。 注释W 怎么了?如果你读了这篇文章,我想你晓得缓存是什么,然而以防万一..。 缓存基本上是将数据存储在设施的存储器中。W 为什么应用缓存?如果用户连贯不好或者没有互联网限度 API 调用,特地是对于不须要常常刷新的数据存储敏感数据(咱们稍后探讨)一张图片胜过一言半语: Cache Strategy Scheme 缓存策略打算 如您所见,缓存的主要用途是始终尝试向用户显示数据。 对于敏感数据,出于以下起因,我将用户缓存与网络缓存拆散: 网络缓存比用户缓存更短暂。相同,用户缓存存储敏感数据,如拜访令牌、刷新令牌,这些数据必须是平安的,用户不能拜访。更具体地说,刷新令牌的有效期可能很长(长达几个月) ,而经典数据可能在一小时后刷新,这将导致不必要的 API 调用。因而,将这些策略拆散开来是一种很好的做法,即便它们能够被合并。 当初咱们理解了什么是缓存,让咱们深入研究代码吧! H 如何建设这些策略?文件树如下所示: -- lib----- core------- cache--------- storage--------- strategy在子文件夹存储中,咱们创立了一个文件 Storage.dart,其中蕴含一个抽象类 Storage 这个类是一个“契约 contrac”,咱们在其中申明操作数据的办法。 abstract class Storage { Future<void> write(String key, String value); Future<String?> read(String key); Future<void> delete(String key); Future<int> count({String? prefix}); Future<void> clear({String? prefix});}正如我所说,咱们将通过咱们的应用程序操纵它们,但为此,咱们须要在设施中存储它们的办法。 咱们应用 Hive 包,它是一个基于键/值的存储解决方案。 总而言之,Hive 在设施的存储中创立了一个文件夹,您能够在其中存储一个 hiveBox,其中蕴含 key: value 数据。 咱们能够很容易地通过它的名字进入这个盒子。 ...

November 17, 2022 · 6 min · jiezi

关于程序员:知乎高赞听说Rust要取代C

随着近几年Rust的大火,越来越多的人开始质疑,Rust势头这么猛,是不是要取代C++?小慕认为,一门编程语言想要齐全取代另一门编程语言是很难的,毕竟每一门技术都有它的专属劣势和特点,总会在特地的中央发光发热。不过随着Rust的势头越来越强,心愿Rust取代C++呼声也越来越高,莫非Rust真能取代C++? 到底能不能取代,咱们还是先来理解一下Rust和C++这两种编程语言吧。  01 C++ VS Rust 谁胜谁败? 1、C++,是在C语言的根底之上开发的一种高级通用语言,它的利用宽泛,反对多种编程范式。至今为止也是宽广程序员最喜爱最受用的杰出编程语言之一。 2、Rust是一种专一于平安,性能的泛型等编程范式的多范式语言,更零碎更具备创新性,致力于解决高并发和高安全性零碎等问题。 3、从两种编程的语言定义上你就能看出他们的优缺点: 1、C++具备很多软件开发框架反对,而Rust没有。 2、Rust具备弱小的内存安全性。 3、因为Rust有cargo 的存在, 所以相较于C++我的项目和依赖治理更加简略。一些程序员十分沉迷于Rust的应用,次要是因为Rust的性能和规范的C++的性能真的是并驾齐驱,联合来看,Rust相较于C++稍逊一筹。 Rust 语言绝对较新,受欢迎水平稳步增长,但市场占有量却不是很大,这也就导致了Rust技术人员的薪酬一路水涨船高,甚至在2021年还荣登过O’Reilly 薪酬榜榜首。而 C++在薪资方面比照Rust,很显著要逊色一些了,并且最近几年新增岗位也有迟缓缩小的趋势。之前有人说Rust无奈超过C++,尽管薪资很高,但却没有被广泛应用,天然岗位也颇为稀缺。但就在近几年,Rust一鼓作气拿下了区块链行业,成为了区块链畛域的主导语言,仅国内市场,Rust的利用范畴就曾经扩充了好几倍。不仅如此,Rust 马上要进入 linux main stream 了,这足以证实,Rust 曾经被世界最优良的程序员 linus 和我的项目 linux 认可了。越来越多的企业开始对Rust产生趣味,越来越多的编码人才正在退出到学习Rust语言的行列中来,学习Rust语言已成为趋势,Rust将来的倒退不可估量。 02 Rust到底能不能取代C++? 那咱们再回到最开始的问题:Rust到底能不能取代C++? 小慕认为,这种可能性还是蛮大的。 Rust利用劣势 现阶段的 Rust 在向上走, C++ 却在向下走,但C++毕竟是老牌编程语言,底蕴在那呢,Rust作为新语言,将来或者只能取代C++某个利用场景的一部分,但要想真正取代,势必要有十分漫长的一段路要走。 03 Rust那么火,我要不要学?  学啊,学会Rust,保命抗内卷啊。小慕认为,当初学Rust,工夫真的刚刚好。Rust入门难度大,对程序员的基本素质和能力要求极高,所以初期入坑的程序员学成后自身就很“贵”,薪酬终点高是必定的;Rust尽管当初看起来很小众,岗位少,但也是供不应求的状态;从互联网目前的发展趋势来看,区块链畛域发力势头很好,国内很多区块链公司招人根本要求肯定是要熟练掌握Rust;2022 年传统互联网大厂腾讯、阿里、字节、B 站、抖音等都在裁员,互联网时代曾经过来了,所有增量都曾经枯败,然而相同,区块链很有可能引领下一次工业革命,投资 Rust 就是投资将来。 在大学还在学习C++ 的明天,尽早学习并应用Rust真的十分有必要,有价值。 04 Rust不好学,如何疾速入门? Rust难不难学?必定难啊。Rust是一门很有前途的明星语言,但同时又以高难度、高门槛而著称,劝退了不少自学者和有需要的开发人员。入门难、不敌对、学习曲线又绝对平缓,难道我就真的学不会吗?慕课网精英讲师叶枭说:要想疾速入门Rust也不难!先打好根底,再去入门,更简略。从Rust语言根底登程,关注Rust语言自身特点,应用最简程序,排除应用场景少、概念了解艰难的分支内容烦扰,就能很快的在最短时间内上手Rust开发,领略Rust编程之美。 Rust是一门十分优良的语言,它不仅能补救很多开发语言的有余,还能够帮忙开发者交付高质量的软件产品。心愿大家都能熟练掌握Rust这门编程语言。加油啊!

November 17, 2022 · 1 min · jiezi

关于程序员:AI-正在取代程序员

明天谈一个与程序员的命运非亲非故的话题。谈起人工智能,少数人对这个概念曾经有所理解。随同着人工智能的倒退,其影响也深刻到咱们生存的方方面面。前段时间在作画畛域和围棋畛域,都曾经呈现了AI取代原有工种的状况,国内顶尖棋手开始模拟AI的棋路,绘画大赛的头名由AI拿到,不少人开始放心,AI会不会代替大部分人的工作。AI在未来会不会取代程序员?生产力和技术的倒退势必带来一部分人的就业,就像汽车的呈现,让绝大部分马车车夫没有了工作。将来AI的倒退状态,或者真的能够带来生产力的极大改革。不说远的,以目前的技术水平,AI早就曾经开始对程序员的工作产生影响了。先是AI工具对程序员工作效率的大幅晋升。最近Github编程神器copilot又陷入到代码版权争议风波之中。copilot是一款主动补全代码的工具,作为一款 AI 结对编程工具,它的次要定位是提供代码补全与倡议性能。有了它,程序员在coding的时候能够更快敲出代码,并且依据文本提供更大的代码块,包含函数的残缺主体。copilot所做的这一切都是基于AI零碎接管的来自GitHub公开的数以千万计的代码训练,copilot背地的AI零碎是微软来做的,技术能力应该很强劲。德州农工大学的一位计算机科学传授 Tim Davis 最近在炮轰这款软件,因为本人和 GitHub Copilot 在稠密矩阵转置、稠密矩阵加法的代码简直截然不同,高度雷同。这就很可怕了。大部分程序员的工作工作是了解业务,而后用程序语言将业务写进去。也就是说,出于人力老本的思考,有些程序员还真的可能被优化。比方,简略的程序都能够依赖相似这种工具来做,那么整个团队就不须要太多的程序员了,只须要几个能设计和实现解决方案且能调整代码的人就能够了。进一步脑洞,假使当AI倒退的曾经足够成熟,那么是否只须要几个简略的业务指令就可能完满给出所有程序,且自行进行测试和运行。小慕小慕,帮我搞个秒杀购物商城。好的客人,以下是技术计划,请确认。就像当初简略的智能对话,siri曾经能够帮忙用户拨打电话、查看天气等等。如果AI还能本人训练本人,一直进化和学习,那就更可怕了,有谁会不喜爱业务能力ok还上进的员工呢?人类也在始终放心,如果AI自主进化领有自我意识,那人类将如何爱护自我。所以,AI取代程序员,可能真不是玩笑。AI画作冲击绘圈前段时间有个AI画作得头奖的好笑新闻。那个时候咱们还讥笑说他们用的AI评审吧。不然主观性这么强的较量,竟然是AI画作拿第一名。最近知乎上又在为了AI画作吵得热气腾腾的,发现对绘圈冲击太大了。因为大家发现AI这玩意画的,比真人手绘差不了多少,甚至可能更好,更重要的是老本真的低。间接导致的后果就是,很多有设计需要的同学,间接用AI工具来绘制图片,那么一些个别的画手很有可能被行业淘汰,因为AI画作体现超过他们。AI画作也通过了图灵测试。于是各种各样的发问和畅想跑进去了。“AI作画真的是个会有限进化的怪物吗?”“AI也让作曲成为普通人都能够参加的艺术。”“围棋下法曾经在模拟AI,较量也失去了很多观赏性。”从这些事件也能够看出,AI对生存的渗透,在将来可能会变得充斥不堪设想的设想。就像蒸汽时代,汽车的呈现对传统马车的冲击。AI也会在接下来的某一个阶段,冲击着人类的设想,让咱们一直思考技术和人的关系。或者只有跳出时代当下,站在历史长河里去扫视,能力晓得到底谁成为了牺牲者,谁又占据了历史的高点。在变动中思考当然也不用过于焦虑。AI的创造者是人类,AI的成长和倒退还是须要程序员来钻研。程序、算法模型、人工智能的训练还是要有人写代码实现的。更何况,程序员作为人类,自身就无奈写出完满无bug的代码,而AI作为程序员发明的产物,又如何能查看出代码中所有Bug。即使是AI真的有足够能力取代大部分程序员,那也并不是忽然在某个工夫节点就全副取代。任何事物的隐没都有时间差,沦亡总是须要工夫的。咱们更应该思考的是技术和人的关系。 很喜爱勃张量在知乎答复中提出的三个问题:技术提高长期看是否能提供更多的待业岗位技术提高局部取代了一部分人的工作,那么这些人的社会位置和后续安顿应该如何解决(或者说社会层面如何博弈)如果技术能够实现大部分社会生产,那么人如何通过实际意识世界?实际的意义是什么?以上问题,或者没有最好的答案,但也给了咱们很多指引。在历史的角度来看,几十年不过弹指一挥间,而对于咱们个体来讲,职业生涯的寿命不过几十载,更何况程序员还仍然深受35岁危机的困扰,在将来的几十年,总不至于极大局部就业。 况且,人类领有自驱性,程序员也会一直思考本人职业生涯的布局,来寻求更好的倒退之路。如果AI真的成长为一个恐怖的事物,人和AI的相处势必是人类生存的最初一个问题,就绝不仅仅只和程序员敌人们相干。 欢送在评论区里和咱们高兴探讨~

November 9, 2022 · 1 min · jiezi

关于程序员:番外篇深扒C函数

函数指针获取函数的地址:函数的名字就是地址 函数指针申明与应用: //函数原型double pam(int); //函数指针申明和赋值double (*pf)(int); //函数指针申明pf=pam; //函数指针赋值double (*pf)(int)=pam; //函数指针申明和赋值auto pf=pam; //应用C++11的主动类型推断来申明和赋值//应用pf(123);(*pf)(123); //留神(*pf)的括号肯定要保留下来,不然意义就不同了pam(123);//这三种模式等价,之所以会这样是因为两种学派的了解不同;而我集体认为第一种用法比第二种用法正当;当前在应用时看到(*pf)(123),你间接看成pf(123)即可,将(*)看成多余的就好---------------------------------------------------------------------------------------//函数原型double f1(int);double f2(int); double f3(int); //函数指针数组的申明和赋值double (*pfa[3])(int); //函数指针数组的申明pfa[0]=f1; //函数指针数组的赋值示例double (*pfa[3])(int)={f1,f2,f3}; //函数指针数组的申明和赋值//不能够应用auto来主动初始化,因为auto只能用于单值初始化,而不能初始化列表//ps:初始化=申明+赋值;初始化列表就是{}---------------------------------------------------------------------------------------//诚实说,C++的指针申明挺简单,如果可能很好的了解上面的申明,就证实你对C++的申明一目了然了const double *(*(*pd)[3])(const double *,int);//了解所有指针申明的要点是,从里向外去解读;留神[]的优先级比*高---------------------------------------------------------------------------------------//要简化函数指针的申明过程,除了应用auto之外,还能够应用typedef,例如://函数原型double pam(int);//将函数指针类型弄成标识符模式typedef double (*p_func)(int);//函数指针申明p_func pf;非动态类成员函数指针与类的非静态数据成员变量不同,类的非动态成员函数不会在运行时为每个类的实例对象生成一份专有的机器语言代码,类的非动态成员函数在内存中只有一份,即类的非动态成员函数的地址也是惟一的。那么为什么不同的实例调用非动态成员函数的时能够拜访到属于实例自身的数据呢?这是因为非动态成员函数默认的第一个参数就是this指针,只是没有明写进去罢了 类的非动态成员函数默认的第一参数就是this 受this指针的影响, 非动态类成员函数指针 的申明和应用与 个别的函数指针(含动态成员函数指针) 都不同 //类的非动态成员函数指针 申明、赋值、应用 都跟一般状况不同//申明时须要增加类名int (classA::*pFun)(int); //留神类名搁置的地位,类名是用来指明this指针的类型的//赋值时须要增加类名和&pFun=&classA::Fun;//应用时须要加上实例对象(classAInstance->*pFun)(12345); //留神一个'('、')','*'都不能少,格局就这样死死固定住了; //如果这个语句呈现在非动态成员函数中,不要认为classAInstance不写零碎会主动加上this;如果你是想调用this的pFun就本人手动加上,不然会报错,//类的动态成员函数指针 申明、赋值、应用//申明时int (*pFun)(int);//赋值时须要增加类名pFun=classA::Fun;//应用时pFun(12345); //或(*pFun)(12345);函数模板函数模板将类型作为参数传递给函数模板,使编译器生成该类型的函数;又叫通用编程或参数化类型; 由函数模板对应的具体函数称为称为模板实例(instantiation) 隐式实例化、显式实例化、显式具体化统称为具体化(specialization) 类型参数不能有默认值,然而非类型参数能够有默认值 函数模板的申明格局// T 叫做类型参数template<typename T> //能够写成 template<class T>,然而这个是C++98之前的写法;typename这个关键字是C++98定义的;函数模板参数列表中能够有多个参数,如template<typename T1,typename T2>void Swap(T &a,T &b); //返回类型能够不可也写成T???函数模板的定义格局这只是一个函数模板,并不是函数;函数模板用于通知编译器如何定义函数;只有在编译时检测到代码中须要用到这个模板,编译器才会根据具体类型依照模板格局生成模板实例,这个过程称为隐式实例化(implicit instantiation) 编译完结之后机器码中并没有函数模板,只可能存在模板实例的机器码 模板函数的定义能够放在应用到函数模板的函数前面 template<typename T> void Swap(T &a,T &b){ T temp; temp=a; a=b; b=temp;}模板函数的应用//应用时都不必指明类型,编译器会自动检测参数列表的数据类型来确定函数的类型int main(){ int i=10; int j=20; Swap(i,j); //隐式实例化 Swap<>(i,j); //不带参数的显式实例化,确保编译器应用函数模板的实例化版本 double x=1.3; double y=3.6; Swap(x,y); //隐式实例化 Swap<>(x,y); //不带参数的显式实例化,确保编译器应用函数模板的实例化版本 //疑难: //Swap(i,x); //会怎么? return 0;}函数模板的重载template<typename T> void Swap(T &a,T &b){ T temp; temp=a; a=b; b=temp;}template<typename T>void Swap(T *a,T *b,int n){ T temep; for(int i=0;i<n;++i) { temp=a[i]; a[i]=b[i]; b[i]=temp; }}int main(){ int i=10; int j=20; Swap(i,j); int array1[3]={1,2,3}; int array2[3]={4,5,6}; Swap(array1.array2); return 0;}函数模板的局限性template <typename T>void f(T a,T b){ //a=b; //本来是想做内容赋值操作的,但如果T类型是数组指针,那么最终只是a变成了b的指针,a并没有取得b数组的内容;又或者以后T类型并没有'='操作; //a>b; //本来是想做内容比拟操作的,但如果T类型是数组指针,那么最终只是比拟了a指针和b指针,并没有进行内容比拟;又或者以后T类型并没有'>'操作; //当前留神T只解决非数组类型,T*才是用来解决数组类型的;}函数模板的显式具体化(explicit specialization)所谓的显式具体化就是手动写一个函数模板的模板实例 ...

November 9, 2022 · 2 min · jiezi

关于程序员:Flutter-最佳实践-01

Flutter 最佳实际 - 01 原文 https://vipinvijayannair.medi...前言作者把工作中的教训做了列举,这是第一局部,继续更新。 注释1. 占位 Placeholder Widget应用 SizedBox 而不是 Container 作为占位符 widget 。 看看上面的用例 return _loaded ? Container() : YourWidget();SizedBox 是一个常量构造函数,它创立一个固定大小的框。宽度和高度参数能够为空,以批示不应在相应的维度中束缚盒子的大小。 因而,在实现占位符时,应该应用 SizedBox 而不是 Container。 return _loaded ? SizedBox() : YourWidget();更好的抉择 return _loaded ? SizedBox.shrink() : YourWidget();2. 定义主题 Theme定义应用程序的主题以及一个优先级,以防止在将来更新扭转主题的头痛,设置主题必定是凌乱的,但一次性工作。让你的设计师分享所有与主题相干的数据,比方色彩、字体大小和分量。 MaterialApp( title: appName, theme: ThemeData( // Define the default brightness and colors. brightness: Brightness.dark, // You can add the color from the separate // class here as well to maintain it well. primaryColor: Colors.lightBlue[800], // Define the default font family. fontFamily: 'Georgia', // Define the default `TextTheme`. // Use this to specify the default // text styling for headlines, titles, bodies of text, and more. textTheme: const TextTheme( headline1: TextStyle( fontSize: 72.0, fontWeight: FontWeight.bold, ), headline6: TextStyle( fontSize: 36.0, fontStyle: FontStyle.italic ), bodyText2: TextStyle( fontSize: 14.0, fontFamily: 'Hind', ), ), ), home: const MyHomePage( title: appName, ),);您能够做更多的主题,这是定义您的自定义 TextField,卡片,底部导航栏主题一次,并应用它间接在应用程序。 ...

November 8, 2022 · 2 min · jiezi

关于程序员:Thinkphp学习

<,,> 本文由mdnice多平台公布

November 8, 2022 · 1 min · jiezi

关于程序员:腾讯云基础认证是什么多少分通过

近几年越来越多的人为了找工作,都会考技能证书,当初社会的人才泛滥,如果没有特地突出的能力,就会被泯灭在人群之中。近几年云计算技术蓬勃发展,越来越多的企业抉择上云,这样就造成了大量的人才缺失,市场须要对应人才来满足供应,企业须要人才来维持运行。 其中腾讯云的认证能够说是很多人考的一种了,这个是腾讯云旗下的人才认证零碎,次要是为了造就把握腾讯云产品技术的人才,考生在考试的过程中,能够通过学习绝对的常识,来晋升本人的业余能力,而且考试的针对性强,次要是对于云计算、大数据等行业,在工作时十分实用。 腾讯云认证等级 1、云从业者认证这是腾讯云最根底的认证,适宜一些在校生、没有工作教训、对云技术有趣味的人群,能够从事云产品销售、云产品经理等工作,对于刚刚毕业的大学生、想转行的人来说,是十分有益处的,不须要过硬的技术能力,然而足够在面对客户的时候解决所有问题,是十分好的门面。 2、TCA认证对于业余学习IT技术的人来说,在刚刚毕业的时候,腾讯云的入门级技术认证是十分好的一个工具,可能帮忙刚刚毕业的大学生取得一份较好的工作,尤其是对于有技术,想疾速挣钱的人来说,腾讯云的认证是十分有用的。 3、TCP认证每当加入工作几年后,人人都会想升职加薪,这个时候就须要一些于含金量的证书来帮忙本人了,腾讯云的TCP认证是目前腾讯云最高等级的认证,很多工作了几年多人会考取这个认证,来晋升本人的业余能力、取得更好的倒退。 腾讯云考试注意事项 1、对于考生来说第一步就是要先决定本人想考什么方向,腾讯的认证分为运维、开发和架构嗓方向,考生能够依据本身的条件和倒退方向来抉择考试方向。 2、决定好考试方向后要提前报名,因为腾讯云的认证每个月只有一次考试机会,在每个月的最初一个周六,而且会提前十天敞开报名通道,考生必须提前报名,否则当月就无奈参加考试,只能报名下个月的考试。 3、报名胜利后就能够开始筹备考试了,个别考生会通过观看学习视频和寻找题库来做筹备,有须要的人能够在认证大使网站上具体理解,他们家的题库覆盖率高,还有优惠报名券。 4、考试是在线上举办的,开考当天,考生须要提前半个小时进入考场,避免出现意外。  

November 8, 2022 · 1 min · jiezi

关于程序员:极简项目管理读后感

前言 守业公司也实用的极简项目管理法 咱们处在一个VUCA的时代 易变性(Volatility)不确定性(Uncertainty)复杂性(Complexity)模糊性(Ambiguity) 给咱们的工作带来了很多困扰。变动是VUCA的本源,VUCA时代惟一不变的就是变动 第一局部 意识项目管理 组织的经营流动能够简略地分为两大类: 以重复性劳动为次要特色以非重复性劳动为次要特色 人类总会犯一个谬误:人总是用之前见过的货色,来形容一个未曾呈现过的货色 image-20220109220516875 针对业务的解决方案才是客户的实在需要遇到问题当前不要试图仅仅解决问题自身,还要去解决问题所在环境的问题系统工程的一个基本原理就是超过零碎自身解决问题,即N维零碎产生的问题只有在N+1维零碎中能力解决我的项目是一个业务过程,而不是技术过程。这是重要的我的项目思维!要能把需要确认落地,实施者必须有很好的业务建模能力,并以征询形式开展,也就是要推出本人的计划,疾速地给客户展现正当的样例。一方面,这样能够较好地疏导客户提出正当的需要,把他们的思路管制在可执行的范畴内。另一方面,通过逆向反馈,推动客户确认需要,能够较大水平地防止了解上的偏差客户每一次提出新的要求,都是在帮咱们逐渐迫近事实真相我的项目在实质上是独特的、长期的非重复性工作,要求应用无限的资源,在无限的工夫内为特定的人(或组织)实现某种特定指标(产品、服务或成绩)独特性、临时性和渐进明细性,是我的项目最显著的三大个性,其中独特性和临时性是最根本的个性,渐进明细性是在这个根底上衍生进去的 在我的项目中,须要渐进明细的方面包含: 我的项目指标。开始只有方向性的大指标,而后逐步细化出具体的、可测量的、可实现的小指标我的项目范畴。开始只有粗略的范畴说明书,而后细化出工作合成构造(workbreakdownstructure,WBS)和工作合成构造词典我的项目打算。开始只有控制性的打算,而后逐步明细,制订具体的施行打算 做项目管理肯定要关注企业的宏观环境,由宏观看宏观,再从宏观看宏观 图1-4 组织的工作框架 image-20220109220647198 当我的项目开始时,资源从经营转移到我的项目;在我的项目靠近完结时,资源则从我的项目转移到经营 图17 我的项目失败起因考察 image-20220109220716774 所谓结构化思维,是指一个人在面对工作工作或者难题时能从多个角度进行思考,粗浅剖析导致问题呈现的起因,系统地制订口头计划,并采取失当的伎俩使工作得以高效地发展,获得高绩效当前遇到问题肯定要使用结构化思维,试着从三个方面去解决问题:问题自身、问题的所在环境、问题解决的主体。问题自身、环境、解决主体这三个维度组成了了解和剖析问题的空间结构 图1-10 用结构化思维解决问题 image-20220109220753050 项目管理的过程就是将简单问题简单化并予以解决的过程,升高复杂度的一个重要办法就是结构化 图1-11 项目管理的5个过程组 image-20220109220841349 图1-12 极简项目管理的“如来十掌 image-20220109220858968 以五个过程组和“如来十掌”为框架,进一步开展为19个步骤,就造成了极简项目管理地图 图1-13 极简项目管理地图 image-20220109220916810 第二局部 极简项目管理过程 在过程中战胜本人,在后果上战胜对手 我的项目不是在完结时失败,而是在开始时失败 我的项目刚开始,人对我的项目的影响、扭转的能力很强,而变更和纠正错误的老本很低在我的项目生命周期中问题的解决准则如下 我的项目晚期的变更原则上应偏向于承受(我称之为“让怎么干就怎么干”)。当然必须恪守变更控制程序我的项目中期,要先剖析变更的影响,原则上尽可能与相干人员沟通,勾销变更(我称之为“要变更,先谈谈”)我的项目前期,变更老本太高,原则上应尽可能不变更。遇到大的变更时能够思考启动一个新的我的项目,遇到小的变更也要到售后服务时再做。事不宜迟是先验收,将我的项目收尾。(我称之为“生米已成熟饭——吃,是这盘菜;不吃,还是这盘菜!”) 只管咱们做的大部分我的项目都会失败,但治理优良的我的项目败在方向(项目选择)上,治理高明的我的项目败在执行上 图2-7 商业论证要答复的三个问题 image-20220109221041525 六拍 拍脑袋——立项。有些领导有了做我的项目的想法后,不是组织相干人员严格论证是否可行,而是本人感觉可行就立即拍板立项拍肩膀——任命项目经理。启动会议上,为了鼓舞士气、调动项目经理的积极性,领导会拍着项目经理的肩膀进行激励:“好好干,前途无量拍胸脯——向领导承诺。受到领导激励,为了让领导释怀,项目经理会表决心——拍胸脯,团队中的“牛人”们往往也会有所示意:“抉择我,没错的!”“释怀吧,包在我身上!拍桌子——在遇到问题时互相攻打拍屁股——干不上来走人拍大腿——悔恨。我的项目后果令人大喜过望,领导们开始悔恨当初的决策和激动 四没 没问题:我的项目开始时,乐观主义情绪充斥组织高低,每个人都对我的项目的将来充斥期待,风险意识全无没关系:我的项目施行中,时不时会遇到一些所谓的“小问题”,但大家都不以为意——认为没关系没方法:我的项目失败了,意料之中的后果终于如期而至,于是大家又用“没方法跟这种客户打交道”当作借口没资源:我的项目完结了,大家的论断是公司施行这种我的项目须要大家的共同努力,而市场部门没能搞定客户,各职能部门资源不能保障,项目管理教训也有余 三边 边设计。我的项目开始时,大家都不分明我的项目指标,也不晓得我的项目具体该如何做边施行。施行过程就像傻媳妇和面,面多了加水,水多了加面,最初把人都糊到面团里了边批改(边返工)。所谓打算赶不上变动,我的项目环境切实多变,产生了很多“意外”。状况变了,就随时调整计划 只谈 我的项目初期:只谈老本。我的项目中期:只谈进度。每个人都急于看到我的项目的成绩,进度抵触逐步成了人们关注的外围我的项目前期:只谈品质。 时刻记住我的项目是一个业务过程。客户买了一个电钻,是因为他缺一个电钻吗?不是,是因为他想在家里的墙上打一个洞。那客户真的想要一个洞吗?不是,是因为他想在墙上钉一个钉子。那客户真的是想要在墙上钉一个钉子吗?不是,他只是想挂一幅画。而想要挂一幅画,客户只须要一个粘钩就能够了 拿不到签字,下一阶段就不能开始。其实,咱们真正想要的并非他们的签字,而是心愿他们借此机会认真思考我的项目问题。很多时候你不强势,客户就不会深刻思考和探讨 image-20220109221334763 请留神一个准则:对事要硬、对人要软! 图2-12 我的项目相干方 ...

November 8, 2022 · 2 min · jiezi

关于程序员:Ceph-FAQ-总结

Ceph FAQ 总结生产环境如何部署Ceph1. 在kubernetes零碎中应用CephCSI时,是Fuse好,还是KernelMod好?因为容器在技术文件系统层面不存在隔离,而kubernetes中pod运行时kubelet组件依赖各种fs相干的工具加载和检测文卷,因而Ceph产生零碎异样时,会影响整个工作节点。因而举荐CephCSI部署是mount形式改为fuse,晋升零碎稳定性。 2. CephFS有没有必要部署为多活(MDS)模式,还须要做其余哪些筹备?因为CephFS单活模式下,一个MDS服务治理整个文件系统树,局部文件出错会连累整个文件系统,因而在条件容许的状况下尽量部署多活(MDS)模式。此外,倡议做好metadatapool的数据备份, 3. 编排工具应用cephadm和rook哪个更好,他们之间有什么区别?cephadm是ceph我的项目自带的编排工具,部署Ceph这个组件时能够通过批改配置脚本的形式使得各个节点的物理资源失去更加充沛的利用,并且以后版本曾经应用docker容器来运行ceph组件,比照传统的ansible等运维工具更贴合现在的潮流;rook-ceph则是第三方团队为ceph打造的编码工具,更贴合kubernetes业务,能够应用云原生的可观测组件,对容器、日志、网络等基础设施进行更好的监控,它更适应云上的编排环境,它将ceph组件运行在kubernetes的容器中,后续应用中可根据云厂商提供的富容器减少零碎的安全性和健壮性。 问题解决1.客户端挂载ceph查看的容量与理论容量不符?如何解决osd之间数据不平衡问题?此问题个别是因为局部OSD使用率远高于其余OSD的使用率导致,属于数据平衡性问题的一种。利用osd utilization命令优化平衡性即可。 ceph osd reweight-by-utilization2.如何解决osd crash down当前零碎中的报警?ceph crash archive-all3.如何解决ceph集群复原速度慢的问题?# 仅思考数据恢复,不思考数据访问速度ceph tell 'osd.*' injectargs --osd_max_backfills 32ceph tell 'osd.*' injectargs --osd_recovery_max_active_hdd 16ceph tell 'osd.*' injectargs --osd_recovery_max_active_ssd 64ceph tell 'osd.*' injectargs --osd_recovery_sleep_hdd 0ceph tell 'osd.*' injectargs --osd_backfill_scan_min 32# 复原兼容性能模式ceph tell 'osd.*' injectargs --osd_max_backfills 8ceph tell 'osd.*' injectargs --osd_recovery_max_active_hdd 4ceph tell 'osd.*' injectargs --osd_recovery_max_active_ssd 16ceph tell 'osd.*' injectargs --osd_recovery_sleep_hdd 0.0001ceph tell 'osd.*' injectargs --osd_recovery_max_single_start 8# 生产环境ceph tell 'osd.*' injectargs --osd_max_backfills 4ceph tell 'osd.*' injectargs --osd_recovery_max_active_hdd 4ceph tell 'osd.*' injectargs --osd_recovery_max_active_ssd 16ceph tell 'osd.*' injectargs --osd_recovery_sleep_hdd 0.01ceph tell 'osd.*' injectargs --osd_recovery_max_single_start 44.如何修复有问题的pg?ceph health detail# ...# pg 65.168 is incomplete, acting [12,5,10] (reducing pool aifs-data0 min_size from 2 may help; search ceph.com/docs for 'incomplete')# ...# 修复pgceph pg scrub 65.168ceph pg deep-scrub 65.168ceph pg repair 65.168# 修复pg所对应的osdceph osd repair 12ceph osd repair 5ceph osd repair 105.如何手动挪动pg从osd1到osd2?ceph osd pg-upmap-items a.b 1 26.如何暂停Ceph中正在运行的服务,进行调试或是优化?# 备份以后配置ceph osd set nooutkubectl get deployment rook-ceph-osd-$i -n rook-ceph > rook-ceph-osd-$i.yaml# 服务暂停kubectl -n rook-ceph patch deployment rook-ceph-osd-$i --type='json' -p '[{"op":"remove", "path":"/spec/template/spec/containers/0/livenessProbe"}]'kubectl -n rook-ceph patch deployment rook-ceph-osd-$i -p '{"spec": {"template": {"spec": {"containers": [{"name": "osd", "command": ["sleep", "infinity"], "args": []}]}}}}'#服务复原kubectl apply --replace -f rook-ceph-osd-$i.yamlceph osd unset noout7.如果敞开一些ceph集群后盾执行的工作#ceph osd set noout#ceph osd unset nooutceph osd set nocovery#ceph osd unset nocoveryceph osd set noscrub#ceph osd unset noscrubceph osd set nodeep-scrub#ceph osd unset nodeep-scrubceph osd set nobackfill#ceph osd unset nobackfill8. 如何解决局部pg调用ceph osd force-create-pg并且通过长期期待仍无奈重建的问题?9. 如何解决pg长期处于unknown状态?# 重建pg对象ceph osd force-create-pg a.b# 当 force create 有效时执行上面的命令ceph osd pg-temp a.b 1 10 14ceph osd pg-upmap a.b 1 10 1410. 如何显示更详尽的日志以不便调试和追踪问题ceph tell osd.0 injectargs --debug-osd 0/5ceph tell mon.a injectargs --debug-osd 0/5ceph tell mds.a injectargs --debug-osd 0/511.如何关上和敞开本地ceph调试日志?echo "module libceph +p" >/sys/kernel/debug/dynamic_debug/controlecho "module ceph +p" >/sys/kernel/debug/dynamic_debug/controlecho "module libceph -p" >/sys/kernel/debug/dynamic_debug/controlecho "module ceph -p" >/sys/kernel/debug/dynamic_debug/control12. 批改解决因为rook ceph operator重置后的monitor集群后secret和configmap中mon_host不匹配的问题?mon_host=$(kubectl -n rook-ceph get svc rook-ceph-mon-b -o jsonpath='{.spec.clusterIP}')kubectl -n rook-ceph patch secret rook-ceph-config -p '{"stringData": {"mon_host": "[v2:'"${mon_host}"':3300,v1:'"${mon_host"':6789]", "mon_initial_members": "'"${good_mon_id}"'"}}'13.如何解决CephFS MDS服务无奈进入active状态的问题?# Session tablecephfs-table-tool cephfs:all reset session# SnapServercephfs-table-tool cephfs:all reset snap# InoTablecephfs-table-tool cephfs:all reset inode# Journalcephfs-journal-tool --rank cephfs:all journal reset# Root inodes ("/" and MDS directory)cephfs-data-scan init --force-init14.CephFS Monitor呈现容量报警。[WRN] MON_DISK_BIG: mons a,b,c,d,e are using a lot of disk space mon.a is 18 GiB >= mon_data_size_warn (15 GiB) mon.b is 17 GiB >= mon_data_size_warn (15 GiB) mon.c is 18 GiB >= mon_data_size_warn (15 GiB) mon.d is 18 GiB >= mon_data_size_warn (15 GiB) mon.e is 18 GiB >= mon_data_size_warn (15 GiB)排查此问题是须要察看集群是否处于HEALTH_OK状态,如果是的则应用‘解决办法1’,如果不是则须要进入问题排查流程 ...

November 8, 2022 · 4 min · jiezi

关于程序员:Scrapy爬虫框架学习

导读本文将举荐一个爬虫框架scrapy,并赠送一套学习材料(内附讲义和我的项目实战代码),让学习爬虫的小伙疾速上手。 获取形式评论 内容简介文件 目录 根底 实战练手我的项目一:12306购票 我的项目二:国家企业公示网 代码示例 本文由mdnice多平台公布

November 8, 2022 · 1 min · jiezi

关于程序员:大咖说禾连健康|云原生的应用对企业有什么样的影响

云原生如何解决医疗企业的经营问题?它又是如何晋升企业开发人员幸福感的?以及云原生在将来的发展趋势如何?本期大咖说,看浙江禾连衰弱治理有限公司 CTO 邓志豪如何分享。https://www.youku.com/video/X... * 嘉宾介绍 邓志豪:浙江禾连衰弱治理有限公司 CTO 感兴趣的敌人,能够百度搜寻【阿里云大咖说】,观看更多精彩内容~

November 8, 2022 · 1 min · jiezi

关于程序员:Go-浅谈包管理模式

任何一门编程语言都离不开对各种工具包的应用,工具包的治理就显得异样重要了。Go 的包治理形式是逐步演进的,本文介绍Go语言的两种包管理模式。GOPATH模式引包(不举荐)在 1.5 版本之前,所有的依赖包都是寄存在 GOPATH 下,没有多版本控制。 go的编译器会在 $GOPATH/src 上面寻找对应的模块,src 下的每一个目录都能够对应一个模块,目录中的目录也能够是一个模块 上面展现如何在入口文件main.go 里引入非标准库model包中的变量 目录层级如下├───main│ main.go└───model utils.gomain/main.go 入口文件引入utils外面的Name变量model/utils.go 文件申明 package model,并定义变量var Name string = "xiao" ,变量必须是大写,否则报错name not exported by package modelmain.go 文件引model包package mainimport ( "fmt" // 引包 // 省略GOPATH/src, Go编译的时候会主动在src目录下寻找 "go_code/pointer/model")func main() { fmt.Println(model.Name) // xiao}开启GO111MODULE后非module我的项目产生的问题在GO111MODULE=on,并且曾经设置GOPATH的条件下,写的代码在$GOPATH/src下,我想要应用另一个package外面的内容,并且这个package不是规范库,或者说不在GOROOT里(个别咱们不会批改GOROOT中的内容),编译会报错,如下 package go_code/pointer/model is not in GOROOT 解决办法一:设置GO111MODULE=off go env -w GO111MODULE=off 设置完之后, go env查看 而后从新编译即可 解决办法二应用go mod , 请看下文介绍 GO MODULE 模式引包(举荐)go modules 是 golang 1.11 新加的个性。 ...

November 8, 2022 · 1 min · jiezi

关于程序员:马斯克亲自审核代码裁员推特50员工硅谷程序员的福报来了

就在刚刚过来的周末,即美国工夫的11月4日,马斯克正式开始对推特进行大规模裁员。据推特安全部门负责人走漏,本次的裁员比例高达50%,也就是说将会有超过3500名员工被裁掉。据称,每个人会有三个月薪水的弥补。没有人感到意外,因为这就是马斯克,出人意表是他一贯的格调。从马斯克抱着水槽(Sink)进入大楼的那一刻开始,他就秉承了“马氏家族”的优良传统,在推特接连掀起血雨腥风。长达数月的收买拉锯战,从“我要买”、“你敢买试试”到“我不买了”、“你不买不行”。接手后第一工夫开掉原有的四位高管。再到亲自审核代码、要求员工加班、高调声称裁员打算……没有人晓得马斯克到底在中国学到了什么。但所有人都明确,这一次,硅谷终于迎来了他们的福报之神。1作为一家出名互联网公司,推特也和许多大厂面临一样的问题——叫好,但不叫座;用户很多,但不赚钱。尽管从诞生开始,推特就连年亏损,但不障碍它成为一家驰名养老公司,号称“Work life blance”,也是最先推广“永恒居家办公”的公司。从员工在互联网上公布的照片来看,在推特的时光还是很美好的。但当初亏的钱是马斯克本人的,事件就不一样了。一般来说,企业要想走出这个窘境,除了调整商业模式(比方偷师微博的8美元蓝V认证费),最间接的伎俩,就对现有团队和架构进行优化。但马斯克毕竟是马斯克,所采纳的形式仍旧十分硬核。善于应用舆论造势的他,先通过身边的人放出音讯,放风说要裁掉75%的员工,引起舆论哗然,推特人人自危。这还只是福报的开始。家喻户晓,马斯克对加班文化推崇已久,他本人也是个加班狂人,干出过间断3年住在特斯拉工厂,在车间搭帐篷的事件。早在他18年发的一条推特里,马斯克就大胆声称:没有人是通过一周工作40个小时来扭转世界的。因而,推特的一些经理们开始要求员工开始“997”,即履行工作12个小时的轮班制,每周工作7天。且不承诺有加班费、补假或者工作保障等。一些经理甚至间接睡在推特公司的办公室里。你说劳动法我都想笑.jpg2更硬核的还在前面。马斯克要求推特的程序员们打印出最近30天到60天的代码,并交给他自己和特斯拉的工程师审查。审查完后,马斯克又要求他们在电脑上亲自演示。至于这么做的目标,则是为了看看推特当初程序员们是否依照他称心的速度和效率工作,以淘汰掉一些不写代码的管理人员。这种硬核的Review形式,就像拿显微镜去找臭虫,混子几乎无所遁形。对这件事,程序员们基本上还是叫好的居多,毕竟不论是在美国还是中国,团队中都有那种所谓的PPT工程师,邮件抄送工程师,复制粘贴工程师、会议对齐工程师等等。一年到头写不了几行代码,但职级却越爬越高。每天娓娓而谈,只会Ctrl C+V,但任何我的项目推动都有他的功绩,大家都是恨得恨之入骨。之前硅谷还有个十分驰名的混子程序员,名字叫Bob,年薪25万美刀,拿出5万请了一个中国外包为他工作。共事对他的评估是“代码写的很洁净优良”、“可能是整栋楼里最厉害的程序员”。后果起初才发现他所有的代码都是中国外包写的,而Bob每天的工作就是:9:00 a.m. — 下班,刷Reddit,看猫咪视频11:30 a.m. — 吃午饭1:00 p.m. — 在Ebay逛街2:00 p.m — 刷脸书和LinkedIn4:30 p.m. — 发送每日总结邮件给管理层5:00 p.m. — 回家甚至到前期,他还接了其余公司的私活,再转手外包给中国程序员,做起了纯倒爷的行当,一年到头一行代码不写,净赚几十万。就离谱。3尽管不确定本次裁员有多少是基于代码审核的后果去断定的,但也足够给程序员们敲一个警钟——都是吃技术这碗饭的,是骡子是马,还是要拉代码进去溜溜。Talk is cheap,show me the code.而且,咱们也能清晰的看到,马斯克解决冗余人效的思路是很清晰,也是很致命的,就是间接看技术水平。不探讨裁员这件事的正确与否,仅从这个形式来说,算是一股清流了。要晓得,咱们国内的公司裁员,要么是看PPT,要么比拼加班,要么看学历、资格、关系,当然还有最扯的,看年龄。但汇报能够丑化,业绩能够造假,缺勤能够摸鱼,加班能够靠磨洋工。只有技术能力是没法造假的。代码会替你表白。也心愿这个思路也能给国内的大厂一些启发。不要总是盯着年龄一刀切,搞什么回报社会,薪资倒挂,35岁送外卖,40岁开滴滴。难道一个技术过硬,经验丰富,为公司做出有数奉献的工程师,在35岁生日的0点,就会一下子忘掉了所有代码和计划吗?技术水平和年龄无关。工作态度和年龄无关。职业素养和年龄无关。心愿每一家企业,都对技术人才多一些尊重,对所谓的PPT文化、职场潜规则、拉帮结派等糟粕多一点坚守。尽管在寒冬之下,连美国程序员都开始卷了,但咱们还是能看到,仍旧有很多40、50、60岁的程序员沉闷在一线,甚至满头白发依然在写代码的人仍旧有很多。图为Java之父James Gosling国内的大厂们什么时候能有这种心怀呢。

November 8, 2022 · 1 min · jiezi

关于程序员:php学习总结

php学习总结php是专门用来进行web开发的语言,能够嵌入到html里和js一样对html页面的操作进行拦挡解决,不同的是php解决的是服务器的申请,js只是对客户端解决。此外php也是反对面向对象编程的php文件是人造的接口文件,主动获取以后页面路由参数而后作数据响应,因而能够独自编写api文件来作后端程序而不必和html混合一起解决(混在一起很乱的呀) php学习参考php官网php中文网 php的根本组成php的组成比较简单,因为他只针对web解决进行开发的,不和java,c#等思考其余端开发,因而只有三局部形成 php内核:用于解决申请,文件流,错误处理等相干解决。Zend引擎:将源文件转换成机器语言,而后在zend 虚拟机上运行扩大层是一组函数、类库和流,php应用它们来执行一些特定的操作,比方装置php_openssl扩大来应用 open ssl函数,常见的扩大有, php运行环境——装置php装置参考文章 php装置和jdk装置相似,下载文件,配置环境变量即可 php须要配合服务器应用,因而配置实现后须要配置服务器反对php如果本机测试开发,上述步骤过于麻烦,能够间接应用小皮面板小皮面板官网 php变量七种变量类型String(字符串)Integer(整型)Float(浮点型)Boolean(布尔型)Array(数组)Object(对象)NULL(空值)。变量申明变量以 $ 符号开始,前面跟着变量的名称,不须要写数据类型动态常量和魔术常量动态常量 <?phpdefine("GREETING", "Welcome to w3cschool.cn!");echo GREETING;?>魔术常量 __LINE____FILE____DIR____FUNCTION____CLASS____TRAIT____METHOD____NAMESPACE__php高级PHP 多维数组PHP 日期PHP date() 函数PHP 蕴含 php蕴含的意思就是在php文件里执行蕴含的php文件include 'filename';或者require 'filename';PHP 文件PHP 文件上传PHP CookiesPHP SessionsPHP E-MailPHP 平安 E-mailPHP 错误处理PHP 异样解决PHP 过滤器PHP 高级过滤器PHP JSONphp自带函数参考手册php自带函数参考手册 PHP 5 Array 函数PHP 5 Calendar 函数PHP cURL 函数PHP 5 Date/Time 函数PHP 5 Directory 函数PHP Error 和 Logging 函数PHP 5 Filesystem 函数PHP Filter 函数PHP FTP 函数PHP HTTP 函数PHP Libxml 函数PHP Mail 函数PHP 5 Math 函数PHP Misc 函数PHP MySQLi 函数PHP PDOPHP SimpleXML 函数PHP String 函数PHP XML 函数PHP Zip File 函数PHP TimezonesPHP 图像处理PHP 序列化/反序列化函数PHP 罕用header头定义php连贯数据库php连贯数据库 ...

November 8, 2022 · 1 min · jiezi

关于程序员:5-个-Flutter-Dart-个小技巧

5 个 Flutter Dart 个小技巧 前言明天让咱们疾速学习 Dart 的 5 个小技巧,在开发中很实用。 注释1 .any这是一个语言列表 并且您能够应用 .any 来查看这个可迭代的元素是否满足测试。 在这个例子中,咱们验证是否有任何语言以字母 D 或 B 结尾 第一个是真的,第二个是假的。 2 .padRight .padLeft如果应用 padLeft 或 padRight,则能够在字符串之前或之后增加字符。 这个数字是您将领有和 这就是将要增加到字符串中的内容 你能够做同样的事件 padRight 。 3 .shuffle()对列表中的我的项目进行随机化有时是很有用的 为此,你能够应用洗牌,你能够看到,当初一切都是随机的。 4 字符串乘法 String Multiplication有可能应用 Dart 字符串乘法。 此示例将打印 x 乘以字符串。 5 .toSet()如果你有一个反复我的项目的列表。 您能够应用 .toSet() 删除所有反复项,这是最终后果。 结束语如果本文对你有帮忙,请转发让更多的敌人浏览。 兴许这个操作只有你 3 秒钟,对我来说是一个激励,感激。 祝你有一个美妙的一天~ © 猫哥 微信 ducafecathttps://wiki.ducafecat.techhttps://video.ducafecat.tech本文由mdnice多平台公布

November 7, 2022 · 1 min · jiezi

关于程序员:Flutter-处理主题-Theme-的一些建议

Flutter 解决主题 Theme 的一些倡议 原文 https://medium.com/@ahmed.sal...前言主题通过指定一套色彩和文本款式的零碎,帮忙应用程序取得结构化设计和统一性。主题使您可能疾速实现 UI,而不用强调主要细节,比方为每个 widget 指定确切的色彩。 注释为什么抉择 Theme 主题 ?您心愿框架与您一起工作,而不是与您作对,所以请尝试利用您领有的组件和性能这将是很容易应用的光明和光线主题和切换之间扭转您的应用程序的外观和感觉是很容易的,而不须要扭转您编写的每一行代码所有应用程序的组件和字体都是雷同的,所以应用程序的大部分设计简直是主动就位的。例如,不须要记住题目应该是 24 SP 30,或者复制每个 widget 的确切色彩因为您将输出更少的代码,因而您的开发工夫将缩小您将输出更少的代码,并且页面将很小,只显示组件,而不显示款式例如,每当您想申明一个 TextField 时,您将每次输出这个而不是长装璜 obj,从 1 行到 45 行,它可能或多或少取决于您的款式 色调解决Flutter 主题数据具备肯定的 gaps 和 flows ,例如,并非所有的组件都利用于主题数据对象中的配色计划 看看这个例子,只定义了橙色的惟一主色值 那么我该如何克服这个问题呢? 所有这些问题都会依照这个 https://github.com/flutter/fl... 失去解决 但在此之前,我建议您应用 FlexColorScheme 包。 https://docs.flexcolorscheme.... FlexColorScheme 不仅解决了这些问题,而且还有更多的个性: https://docs.flexcolorscheme.... 为不同的 AppBar 款式提供一个疾速切换,而不须要每次都手动为它制作一个自定义主题,包含与 TabBar 相匹配的主题。主题的 Android 零碎导航栏,以匹配您的应用程序主题,并使其局部或齐全通明。在应用程序中实现多种色彩计划之间的轻松切换提供一个简略的办法,使主题的次要色彩品牌和混合背景和外表。可能轻松地扭转不同外表的混合程度。还有,到 playground 下来发现更多的 https://rydmike.com/flexcolor...文本主题 应用文本主题是很艰难的,并且不倡议你更改 ThemeData 对象中的 TextTheme,因为你会意外地更改一些你不晓得的货色,例如日期选择器,除非你确切地晓得这些更改将如何影响你的应用程序。 问题是 flutter 没有记录哪个文本款式利用于哪个组件,所以你必须本人去发现它 另外,您必须晓得不能在调用 TextTheme() 构造函数时混合应用 2018 和 2021 术语。 ...

November 7, 2022 · 1 min · jiezi

关于程序员:阿里云认证的考试内容难不难有什么方法能快速通过

想实现财产自在是古代社会所有人的幻想,然而很多人就倒在了第一步,也就是积攒原始资本,因为对于大多数人来说,本职工作能失去的微薄薪水,基本不足以撑持日常的开销。为了取得丰富的报酬,大家被迫走上了内卷的路线。越来越多的人通过考据来晋升本人的职业竞争力,对于IT行业的人来说,阿里云的人才认证证书,相对是保障待业的最好帮手。 IT行业是一个始终在风口上的行业,最近几年云计算、大数据、人工智能等技术被发明进去,带给了人类社会新的时机,泛滥企业纷纷转型,倒退了线上业务,就须要大量的对口人才来帮忙企业倒退,而阿里云证书就是十分好的人才认证证书。 阿里云认证等级 依据产品的不同、技术的难易,以及考生本身能力的强弱,阿里云将考试分为了三个等级,别离是助理工程师(ACA)、业余工程师(ACP)以及高级工程师(ACE)。 1、助理工程师 这是阿里云最根底的证书认证,对于很多没有业余技术的人来说,能够抉择考取这个来给本人加分,比方学生就能够用这个来加学分、学习高级的技术,造就云技术素养,为深刻从事这一行做筹备。 2、业余工程师 当初很多人都抉择考这个等级的证书,这个也是阿里云次要举荐的证书,对于这一行的人来说,曾经足够证实本人的能力了,而且这个等级的方向很多,考生可抉择的机会也多。 3、高级工程师 对于云计算行业的人来说,考ACE等级的证书,足以证实他们的业余水平,这是阿里当初难度最高的证书了,而且考试模式很麻烦,须要考三门,当初大多数人都抉择考国际版的,需要的话,能够看看认证大使网站。 阿里云认证事项 1、阿里云助理和业余等级的证书,只须要考口试就能够,通过后能够间接拿到证书,而高级的则须要通过口试、试验和面试三个等级,都通过后才能够拿到证书。 2、阿里云的考试口试都是100的满分,只须要达到80分就能够通过了,然而ACE还有另外的两场考试,都通过后才能够拿证。 3、阿里云的有效期是两年,考生须要在到期后从新进行认证。形式是再次进行考试,须要再次购买考试券,官网会给肯定的折扣。

November 7, 2022 · 1 min · jiezi

关于程序员:产品经理回忆录

人物简介陈大虾,2022届中央民族大学新闻与流传业余,现为航旅纵横用户产品经理,曾在快手、百度、阿里巴巴有多段实习经验。序言每到一家公司,我总会被问到一个类似的问题。“你一个学新闻流传的,怎么会想着去当产品经理?互联网产品经理对于学新闻流传的人来说,不是一个传统的职业倒退方向,但的确是一个能让人疾速成长的岗位。从我开始决定成为产品经理到当初正式成为一名产品经理差不多曾经3年,这3年多对我来说是一段经验丰盛的日子,一段让我真正成长的日子,也是一段值得回顾和记录的日子。这段日子也让我缓缓成为了一个独立的人,有着本人独立思考的人。 01|初识产品经理大三,我第一次正式的思考将来本人要做什么工作,我已经想过当摄影师、想过当导演、想过当记者、甚至有一段时间我特地想去烤羊肉串。不为别的,只是感觉本人对这些工作有些相熟,至多做起来没那么难。不过目前来看这些想做的行业都只能当作本人的喜好了。至于最初怎么会从事产品经理这个行业,我感觉有90%都是偶尔因素。只因为过后看了一本书叫《人人都是产品经理》,就萌发了当产品经理的念头。置信很多人开始接触产品经理这个行业也都是从这本书开始的。我也不例外,读完这本书之后我便对产品经理充斥了向往,也从那时开始给本人定了一个指标。我当前想去阿里巴巴当产品经理(过后次要受这本书作者履历的影响)。 大四,一次偶尔的机会,经舍友介绍我拿到了人生中第一份互联网公司实习经验,在快手做渠道经营实习生。入职之后做的工作还是偏视频剪辑相干的,因为本人自身就学过视频剪辑,所以这份工作对我来说并没有什么难度。就这样,这份工作我从2019年11月做到了2020年的7月份,一共做了8个月。过后公司给我的实习工资还能够,我感觉本人始终干上来也是没有什么问题的。转折点是在2020年7月初,因为部门要孵化一个新的播客App,因为人手不足,我就被“借”走去给一个产品经理帮忙。尽管是借,然而也是要干完本人的本职工作。这一段时间对我来说的确是一段比拟繁忙的日子。尽管很繁忙,然而能学到一些产品的常识我也是很开心的,就这样干到了2020年的10月份,因为要回学校持续读研的起因就提了到职。不过这短短3个月也让我对产品经理岗位有了初步的理解,尤其是看到App上线的那一天,更加燃起了我对产品经理的激情。 研一,在学校待了1个多月上完了半学期的课程。因为切实无聊我就又回到了快手,干的还是以前的渠道经营工作。在干了2个月后,我发现自己并没有成长很多,而且也离本人的指标越来越远,所以过后决定到职。给本人一点儿工夫去学习一些产品常识、拓展一些技能。在到职后的2个月里,我开始补习产品经理的常识。我过后给本人定的一个成为产品经理的规范是,要做一个会画原型图、会剖析数据、懂点儿技术的产品,所以就开始学习Axure、Sketch、SQL、Html相干的常识。学了几个月之后我便开始投递产品岗位的简历,也收到了一些公司的面试。尽管通过学习课程积攒了一些产品常识。然而在面试过程中还是以产品实习经验有余为由每每碰壁。那一刻我对“纸上得来终觉浅”这句话有了更粗浅的领悟,但也是从那一刻起本人也养成一个不到最初绝不放弃的习惯,通过一直的学习、面试、复盘、投递,我也终于等到一个机会... 02|时机与自我否定2021年4月份,我在朋友圈看到了百度在招产品实习生,看到之后当天就投递的简历。或者是他们缺人的缘故,通过简略的几轮面试,我胜利拿到了产品实习生的岗位。刚进入百度时候心田还是有几分窃喜的,因为小时候常常在课本上看到百度大厦,所以对这家公司还是充斥期待的。可进去之后才发现工作远没有本人设想中的那么顺利。至于不顺利的起因,我总结了3点。第一:工夫安顿的不够正当。在百度实习两个月的工夫里,因为每周的周二和周五学校都有课,我不得不半天在学校上课;半天在公司实习(有点半工半读的意思)。实习工夫的不稳固也使得本人并无奈全身心投入工作。第二:无奈适应快节奏的实习生存。我是一个适应环境十分慢的人,从一个环境切换到另一个环境个别须要两周的适应期。因而我刚开始接手工作的时候也是各种不适应,对各个工作流程也不理解,甚至有好长一段时间都是处于“摸着石头过河”的状态。第三:对于不足产品教训。这对我来说的确是一种“硬伤”。因为本人产品方面的教训较少,所以工作时本人只是做一些比拟杂的活儿,例如整顿数据、验收性能等等,接触到外围产品需要的机会很少。这样对于我这种行将加入秋招的人来说是极为不利的。 也因为以上的3点起因,我也成为mentor眼中的“差生”。那段时间她常常会让我向其余实习生学习,我也已经一度陷入自我否定和焦虑,感觉本人不适宜当产品经理。但在焦虑了一段时间后,我缓缓尝试去调整本人的心态,缓缓学会去“平视”本人。“平视”本人对我来说是一种很好意识本人形式,不轻易的否定本人,也不夸张本人。能看到本人的劣势,也能看到本人的有余,这是一种可能很快进步本人的一种形式。 03|抬头赶路,低头看天2021年6月份,我忽然接到一个阿里娱乐体验官的面试。对我来说这是我离阿里最为靠近的一次机会。整个面试过程有三面,一面是带我的师兄;二面是业务负责人;三面是负责业务的HRG。整个面试过程跟面试官聊的很欢快,我过后甚至还和敌人开玩笑,即便面试没过,能和这样的面试官聊天,这辈子也算无憾了。没过多久,我便接到了阿里入职体检的邮件,体检完之后跟百度的mentor提了到职。来到阿里之后我认为还是认为本人的角色就是一个做杂活儿的实习生,然而没想到入职的第3天咱们的产品总监就带着我去跟业务负责人散会,并在散会时候询问我对于对某个产品性能的认识。这一点让我很打动,这是我实习以来第一次感觉本人作为一个实习生受到“器重”。简略的一个月相处之后我也缓缓融入这个团队并也逐步对业务熟悉起来。实习了一个多月后,我便开始参加了声音直播间改版的我的项目,从开始的竞品调研到产品方案设计再到最初的我的项目上线大略做了2个月。这2个月工夫里,我接触到的产品常识比以往任何一段实习接触到的都要多。期间也遇到了很多问题,比方跟研发同学散会需要被许多人质疑、开发过程中因产品计划不合理导致研发同学返工这些在过后对我来说真的是一个挑战。不过好在身边有师兄帮忙,本人的心田也足够弱小,才把遇到的问题一个一个解决,最初我的项目也胜利上线。做完这个我的项目之后我便加入了转正问难,问难通过之后我也胜利退出了这个小家庭(起初听师兄说,是业务负责人找团体为我争取到了一个HC,这一点的确让我很打动)。再起初,我陆续有机会做了很多我的项目,例如营收流动、用户留存、账号体系、经营平台设计等等。站在前人的肩膀上,也一直进步了我对产品的认知和我的项目教训。 除此之外,身边的很多师兄也教我如何去做“抉择”、选“赛道”。在抬头赶路的同时,要学会低头看天。2022年是互联网行业充斥寒气的一年,身边越来越多的人“毕业”让我多少有些慌乱。从老本的角度思考我是性价比较高的,所以也是比拟平安的,至多短期内是平安的。因而我感觉本人齐全不必放心被裁或者被毁约。但我也晓得集体的致力是无奈阻挡行业趋势的。政策方向的调整以及生产互联网的增量红利的消退,也会让越来的生产互联网起家的公司走向开源节流的路线。因而我也决定更换赛道,向新能源、Maas、Saas等产业互联网相干的方向转型。在此期间我的一位师兄帮了我不少忙,帮我找坑,给我投递简历,也陆续收到了面试机会和工作机会...但都不是很适合。起初又通过敌人的举荐,临毕业前的3个月,我投递了另一家公司—航旅纵横,并且最初抉择了这里。次要是做民航出行相干的业务,对我来说这可能也是我始终想做的事,做产业互联网相干的工作,用产品驱动行业倒退。 04|上岸后,我想成为本人的产品经理在快手、百度、阿里的三段实习经验,对我来说都是一段贵重的经验,这段经验里我结识了很多敌人,从他们身上学到了很多常识。在快手的实习让我晓得了设定指标、踊跃筹备、一直尝试的重要性。在百度,我学会了如何“平视”本人、如何与本人和解。在阿里我学习了很多产品常识、积攒了很多产品相干教训、也晓得了如何去做“抉择”。实习两年多以来,我感觉本人最大侥幸就是“我分明地晓得本人喜爱什么,能做什么”。我所有的经验都是我的财产,它不会让我回顾时感觉本人碌碌无为,也可能一直激励我走在后退的方向。 最初,李梨同学跟大家分享一下本人实习两年多以来,本人总结的一些产品学习办法,心愿当前能和大家一起去学习和成长。也心愿大家可能分明地晓得本人喜爱什么,能做什么”,在本人喜爱的路线上可能越走越远。 1.「指标后行」首先倡议大家先养成一个设定指标的习惯。指标能够大、也能够小;能够是近期指标也能够是远期指标,然而肯定先有指标。因为一个人的精力是无限的,咱们也只能把无限的精力集中在几个指标上。没有指标就像在迷雾中漫无目的奔跑,消耗了精力但播种又不多,最初只是打动本人。而设置指标也是有技巧,设置指标其实是给大脑画饼。大脑想要的就是处分、平安、耗能少。如果你的指标处分不够大,又有很多不确定性(不平安),还须要恶补很多常识。那这件事大概率来说实现不了,因为大脑一想就想要放弃了。因而适合的指标和处分对于指标实现有着很大的意义 2.「好奇心、求知欲」要始终放弃好奇心和求知欲,多去思考为什么?随着咱们承受到的事物越来越多,咱们的好奇心也就越来越少。生存中所有如同都是那么正当。大脑通过了长时间演化出了对事不关己的问题进行合理化。例如生存中“2+3“款式的5孔插座、盘状蚊香等很多都是不合理的,但你很少感知到。所以要放弃求知欲和好奇心,要理解背地客观存在是事实和真谛。所以如果你是想在产品这条路上深耕,就须要多去思考生存中所有的底层是什么?而后尽可能把常识都贯通起来。 3.「工夫、保持、复盘、思考」为什么把这4个词放一起呢,因为我始终感觉工夫、保持、复盘、思考是分不开的。如果你想干成一件事,就投入大量的工夫,投入大量的工夫也象征这一直要保持做上来。咱们生存中有很多事都不是一次就可能做成的,都须要一直的去试错。在一次一次的试错中,一直去复盘和思考,从而总结出做事的方法论。 例如,这件事做的好,好在哪里?有没有可复制的教训? 下次能不能做的更好?这件事做的差,差在哪里?有没有能够进步的中央?下次能不能有所改善? 4.「多去求教」接触新业务最好转变观念:站在伟人的肩膀下来做事,会高效很多。因而多去求教、多去问是一个可能疾速学习的过程。不要放心怕打搅他人。只有能帮你解决问题,就应该去打搅他人。但也要聪慧地打搅,不要让共事感觉你一呈现就是在节约他的工夫。打消这种负面影响的形式就是请喝咖啡、吃饭等。 5.「抄作业」如果没有一个高手能够求教,千万不要把本人读书学到的技能遗记了,要学会抄作业。从高质量的内容中找到答案,比方从书中,从相干论坛中。他人曾经造好了路,你就不要本人去造路,走他人的路造好的路就好了。在实习过程中,师兄也提到最多的一句话就是借鉴胜利的产品。他人验证过胜利的模式咱们拿来用就好,不用再去消耗精力和物力去试错。 6.「看明确、想分明」无论是在生活中还是工作中,我感觉都要养成看明确、想分明的习惯。例如在工作中,咱们要明确为什么要干这件事?为什么会提出来这样的需要?指标是什么?为什么这样设计?这也是一个产品经理在跟技术评审需要时候须要讲清楚的。同时看明确的前提是尽可能多的渠道获取信息,真的深刻了解需求方的实在诉求和他们的理论担心,只有想分明这些事件,能力有一个全局视线,这个时候做事才会更加有章法。在还没想分明的时候也能够开始干活,然而过程中要想着,须要有全局视线,就行在打游戏时看地图一样。 7.「负责、靠谱」最初一点就是负责、靠谱。和许多共事聊他们招聘人的规范,第一条就是负责、靠谱。这其实是一种十分可贵的品质,靠谱的第一层含意是负责。说白了,就是事件交到你手上,你能按时按质给出后果,而且能成为最终后果的最初一道防线。 本文由mdnice多平台公布

November 7, 2022 · 1 min · jiezi

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

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

November 7, 2022 · 1 min · jiezi

关于程序员:flutter-中实现磨砂玻璃效果

flutter 中实现磨砂玻璃成果 前言磨砂玻璃成果是一个很酷的用户界面概念,使咱们的用户界面看起来更有吸引力。它基本上是一个含糊的笼罩与缩小不透明度,以辨别或缩小某一观点。这个性能看起来的确不错,然而它会影响应用程序的性能。 注释那么,让咱们看看如何在 Flutter 中实现磨砂玻璃成果。 编写代码通过应用 BackdroFilter () widget 和 ImageFilter 类,能够非常容易地在 Flutter 中实现它。用于含糊图像、 container 或许多其余 widget 。它能够在 iOS 和 android 上运行。它用于突出须要更多焦点的内容,含糊须要较少焦点的内容。 创立一个 container 并应用 BackdroFilter 和 ClipRect 将其包装起来。当初增加背景滤镜的属性: ImageFilter.素,而后增加 sigmaX,sigmaY。SigmaX 和 sigmaY 越高,含糊度越高。 import 'dart:ui';import 'package:flutter/material.dart';class FrostedGlassLookDemo extends StatefulWidget { const FrostedGlassLookDemo({super.key}); @override @override_FrostedGlassLookDemoState createState() => _FrostedGlassLookDemoState();}class _FrostedGlassLookDemoState extends State<FrostedGlassLookDemo> { @override @overrideWidget build(BuildContext context) { return Scaffold( backgroundColor: Colors.white, appBar: AppBar( elevation: 1, centerTitle: true, title: const Text("Frosted Glass Look Demo"), backgroundColor: Colors.blueGrey, ), body: Stack( children: [ Center( child: Container( height: MediaQuery.of(context).size.height / 3, width: MediaQuery.of(context).size.width / 1, decoration: BoxDecoration( borderRadius: BorderRadius.circular(20.0), ), child: const FlutterLogo(), )), Center( child: ClipRect( child: BackdropFilter( filter: ImageFilter.blur(sigmaX: 10.0, sigmaY: 10.0), child: Container( height: MediaQuery.of(context).size.height / 3, width: MediaQuery.of(context).size.width / 1.5, decoration: BoxDecoration( borderRadius: BorderRadius.circular(20.0), color: Colors.grey.shade200.withOpacity(0.5)), child: const Center( child: Text( "Glass Effect Container", style: TextStyle(fontSize: 15), )), ), ), ), ), ], ), ); }}输入成果留神: 我将这个 widget 块重叠在一个 Image 上方,以查看工作成果。我用 Flutter 的标记作为一个图像。当初,咱们能够看到咱们的图像含糊成果。 ...

November 6, 2022 · 1 min · jiezi

关于程序员:Netty源码FastThreadLocal源码

承接上文,这篇次要就剖析FastThreadLocal顺带剖析下相干内容 what既然又了ThreadLocal为什么Netty又创立了一个FastThreadLocal呢,首先,先看下FastThreadLocal的正文,类正文下面阐明了。简述一下 通过FastThreadLocalThread拜访会更快取代了Hash映射,应用常量解决频繁拜访的场景 A special variant of ThreadLocal that yields higher access performance when accessed from a FastThreadLocalThread.ThreadLocal的一种非凡变体,当从FastThreadLocalThread进行拜访时,会产生更高的拜访性能。 Internally, a FastThreadLocal uses a constant index in an array, instead of using hash code and hash table, to look for a variable. Although seemingly very subtle, it yields slight performance advantage over using a hash table, and it is useful when accessed frequently. 在外部,FastThreadLocal应用数组中的常量索引,而不是应用哈希代码和哈希表来查找变量。尽管看起来很奥妙,但它比应用哈希表产生了轻微的性能劣势,并且在频繁拜访时十分有用。 To take advantage of this thread-local variable, your thread must be a FastThreadLocalThread or its subtype.By default, all threads created by DefaultThreadFactory are FastThreadLocalThread due to this reason. 要利用此线程局部变量,你的线程必须是FastThreadLocalThread或其子类型。因为这个起因,默认状况下,DefaultThreadFactory创立的所有线程都是FastThreadLocalThread。 Note that the fast path is only possible on threads that extend FastThreadLocalThread, because it requires a special field to store the necessary state. An access by any other kind of thread falls back to a regular link ThreadLocal. 请留神,疾速门路仅实用于扩大FastThreadLocalThread的线程,因为它须要一个非凡字段来存储必要的状态。任何其余类型的线程的拜访都会回退到惯例链接ThreadLocal。Detail简述 ...

November 6, 2022 · 4 min · jiezi

关于程序员:保姆教程构建与发布Python包

导读2022年如何创立Python 包?如何公布包?这就是本文所教您的。 1. 纲要为了创立Python 包,须要编写实现性能的代码,而后须要将其公布到 PyPI。 现在,还能够设置各种其它配置,让过程更加容易: 继续测试您的package;代码覆盖率报告;per-commit hook(预提交挂钩)(例如,确保正确的代码格局);每次公布新版本时主动公布到 PyPI;...2. 包的作用通常,如果您正在创立 Python 包,要么是因为有一些想要与别人分享的代码,要么是因为您对想要剖析享的货色有肯定的想法。 就本文而言,我想打包我最近写的自定义JSON编码器和解码器,它容许您扩大 JSON 规范。 3. 依赖我将从设置包的依赖治理开始,我将应用 Poetry。Poetry目前正广泛应用于各大我的项目内,越来越成为支流。 3.1. 命名[naming matters] [pydont-naming-matters]在编程中很重要。我心愿我的包被称为extendedjson。 在为您的包抉择名称时,请务必返回 PyPI 并查看它是否可用! 3.2. 初始化在我的项目文件夹中,通过应用 Poetry创立一个新我的项目 poetry new .这将创立如下目录构造: extendedjson├───extendedjson│ └───__init__.py├───tests│ ├───__init__.py│ └───test_extendedjson.py├───pyproject.toml└───README.rst看一下 pyproject.toml文件,它为我填写了一些默认信息: [tool.poetry]name = "extendedjson"version = "0.1.0"description = ""authors = ["Rodrigo Girão Serrão <[email protected]>"][tool.poetry.dependencies]python = "^3.8"[tool.poetry.dev-dependencies]pytest = "^5.2"[build-system]requires = ["poetry-core>=1.0.0"]build-backend = "poetry.core.masonry.api"TOML 文件蕴含包的设置和配置,方括号 []内的每个题目定义一个局部。例如,该文件以 [tool.poetry] 局部结尾,其中咱们为Poetry自身提供了一些配置选项。而后,咱们当初有包依赖项,相当于 Python。在那之后,咱们有特定于包开发的依赖项,即你在实现性能、测试代码等时所依赖的货色,但最终用户并不真正须要这些货色。最初,咱们看到了构建零碎的一些设置。 咱们将持续放弃默认设置,因为它们与我当初想要的统一。我惟一要更改的是文件README.rst,因为我更喜爱markdown文件而不是 reStructured文件。 创立新我的项目后,应用 Poetry在虚拟环境中装置所有依赖项: poetry install这将在您的根目录中创立一个poetry.lock文件,其中蕴含无关所有已装置依赖项的特定版本的信息。 4. Git当初咱们曾经创立了我的项目构造,上面将初始化一个 GitHub 存储库来托管代码: ...

November 5, 2022 · 2 min · jiezi

关于程序员:可编程渲染管线Scriptable-Render-Pipeline-SRP

原文链接 可编程渲染管线解决数据的流程可分为以下3大阶段 1. 利用阶段这个阶段大略会由CPU解决4件事件。首先会对模型数据进行可见性判断。模型数据由顶点地位、法线方向、顶点色彩、纹理坐标等形成。而后会将模型数据加载到显存以进步读取速度。再为每个图元设置常数寄存器和渲染状态。最初为一个渲染图元列表调用DrawCall指令。 图元能够是点、线、三角形。 2. 几何阶段这个阶段由GPU进行解决,会对每一个须要渲染的图元进行逐顶点、逐多边形解决,最基本的工作是将顶点的模型坐标转换到屏幕空间。 2.1 顶点着色器顶点着色器的根本工作是将顶点转换到齐次裁剪空间,还能够进行的其余工作有: 逐顶点着色操作,如逐顶点光照纹理计算逐顶点蒙皮逐顶点程序式动画(procedural animation)2.1.1 投影变换 透视投影 在摄像机应用透视投影的时候,为了呈现出近大远小的透视膨胀(perspective foreshortening)成果,须要对顶点进行透视投影变换。应用透视投影矩阵进行变换后,并没有进行裁剪,只是使得w值有了意义,为前面的裁剪做筹备。 Unity透视投影矩阵(右乘) 会扭转空间手系,从右手系变成了左手系,因为Unity的察看空间是右手系,NDC空间是左手系 察看空间中的顶点(x,y,z)透视投影到齐次裁剪空间后变为 透视投影齐次裁剪空间中坐标的w值为 正交投影 $正交投影远(近)裁剪立体高度=2 \cdot Size$ Unity正交投影矩阵(右乘) 会扭转空间手系,从右手系变成了左手系,因为Unity的察看空间是右手系,NDC空间是左手系 察看空间种的顶点(x,y,z)正交投影到齐次裁剪空间后变为 正交投影齐次裁剪空间中坐标的w值为1 2.2 曲面细分着色器用于细分图元 2.3 几何着色器几何着色器的性能是批改、剔除、创立图元,能够实现以下成果:暗影体积拉伸(shadow volume extrusion)渲染立方体贴图(cube map)的6个面在网格的轮廓边拉伸毛发的鳍(fur in)从点数据生成例子四边形动静镶嵌把线段分形细分(fractal subdivision)以模仿闪电、布料将数据传到管线结尾从新进入管线 用例:在顶点着色器内对头发样条的控制点进行物理模仿,在几何着色器内把样条镶嵌成线段,通过流输入将线段传到管线结尾从新进入管线进行渲染 2.4 裁剪裁剪的作用是将每个三角形在平截头体以外的局部切掉,把在平截头体以外的三角形剔除。 满足以下条件的顶点才会被保留下来: 2.5 齐次除法所谓的齐次除法就是让x、y、z都除以w,这时就能够失去NDC空间中的坐标 上图左边都是OpenGL的NDC,DirectX的NDC也和上图左边相似,但z范畴在[0,1] 2.6屏幕映射视口空间:程序运行窗口形成的空间 矩阵中的X、Y是视口空间原点的屏幕坐标 3. 光栅化阶段这个阶段由GPU来决定绘制哪些片元以及这些片元的色彩 片元=片段:三角形被栅格化后,其中的每一个小方块都是一个片元,能够看成是还不确定最终是否能够出现到屏幕上的像素 3.1 三角形设置这个阶段的工作是找出三角形边界所笼罩的像素 3.2 三角形遍历这个阶段会对每个三角形进行栅格化,即找出每个三角形笼罩的像素区域。区域中的片元中信息(屏幕坐标、深度值、法线坐标、纹理坐标)由3个顶点数据进行插值(必要时会采纳透视校对插值)失去 3.3 提前深度测试如果用户没有在片元着色器中扭转深度或自我抛弃(discard),显卡会主动开启该性能 ...

November 5, 2022 · 1 min · jiezi

关于程序员:每日一题旋变字符串

一个字符串能够分解成多种二叉树构造。如果 str 长度为 1 ,认为不可合成。如果 str 长度为 N(N > 1),左局部长度可 认为 1 ~ N - 1,剩下的为右局部的长度。左局部和右局部都能够依照同样的逻辑,持续合成。造成的所有构造都是 str 的二叉树构造。 比方,字符串“abcd”,能够分解成一下五种构造: 任何一个str的二叉树构造中,如果两个节点有独特的父节点,那么这两个节点能够替换位 置,这两个节点叫作一个替换组。一个构造会有很多替换组,每个替换组都能够抉择进行交 换或者不替换,最终造成一个新的构造,这个新构造所代表的字符串叫作 str的旋变字符串。 比方, 在下面的构造五中,替换组有a和b、ab和c、abc和d。如果让a和b的组替换;让ab和 c的组不交 换;让abc和d的组替换,造成的构造如图 这个新构造所代表的字符串为"dbac",叫作"abcd"的旋变字符串。也就是说,一个字符串 str的旋变字符串是十分多的,str 能够造成很多种构造,每一种构造都有很多替换组,每 一个替换组都能够抉择替换或者不替换,造成的每一个新的字符串都叫 str的旋变字符串。 给定两个字符串str1和str2,判断str2是不是str1的旋变字符串。 解法一:暴力递归 剖析: str2 是 str1 的旋变字符串必须满足一下条件: len( str1 ) == len( str2 )str1 和 str2 的字符品种必须雷同。str1 和 str2 的每种字符的个数必须雷同。依据以上三个条件,咱们能够写一个过滤器。 def valid(str1, str2): if len(str1) != len(str2): return False map1 = {} for i in range(len(str1)): map1[str1[i]] = map1.get(str1[i], 0) + 1 for i in range(len(str2)): num = map1.get(str2[i], 0) num -= 1 if num < 0: return False map1[str2[i]] = num return True尝试模型是:范畴上尝试 ...

November 5, 2022 · 2 min · jiezi

关于程序员:算法题用两个栈实现队列

7 要求工夫限度:1秒 空间限度:32768K 题目形容用两个栈来实现一个队列,实现队列的Push和Pop操作。 队列中的元素为int类型 解题思路利用栈能够颠倒一个序列的程序这个个性来思考 像这类题目只有模仿一下就能找到答案:先退出一些元素,而后思考如何弹出你想要的元素,这样就解决了弹出的问题;再思考增加的问题 这道题中,stack1用于入队,stack2用于出队,只是出队是要留神:要保障stack2不为空时才能够出队;如果它为空,就要先将stack1中所有元素弹出到stack2中,再从stack2中弹出一个元素;如果它不为空,间接从stack2中弹出一个元素即可 代码class Solution{public: void push(int node) { stack1.push(node); } int pop() { if(stack2.empty()) { while(!stack1.empty()) { stack2.push(stack1.top()); stack1.pop(); } } if(stack2.empty()) { cout << "队列为空" << endl; abort(); } int res = stack2.top(); stack2.pop(); return res; }private: stack<int> stack1; //入 stack<int> stack2; //出};拓展用两个队列来模仿栈,思考形式和这道题一样 两个队列的元素要不停的倒来倒去 小弟才浅,如果本篇文章有任何谬误和倡议,欢送大家留言 感激大家的点赞、珍藏 微信搜「三年游戏人」第一工夫浏览最新内容,获取一份收集多年的书籍包 以及 优质工作内推

November 5, 2022 · 1 min · jiezi

关于程序员:饥荒mod饥荒系列教程地图制作方法

申明本文所述皆为实际过程中产生的教训,根本笼罩了从零开始构建mod的相干办法以及思路,文中所介绍的所有内容皆出自作者了解,有可取之处也有肯定局限性,请读者以实际所得论断为准。 文章从如何解决一个问题的角度记录mod制作过程中可能遇到的问题以及解决方案,因而文章适宜任意一个同学,当然有编程根底食用更佳,对于没有编程根底的同学,倡议联合菜鸟教程-lua一起食用。 写作工夫:2022/10/22 游戏版本(生成版本ID):Don't Starve Togather-9775009 编程接口版本(API)](https://baike.baidu.com/item/应用程序编程接口/3350958)):10 tips: 游戏版本查看形式: 抛砖引玉置信上一篇文章在坐的各位都懂了,那此时若要请各位同学按本人的想法本人造一个地图进去这正当么?显然不合理。为什么?这就好比给我一堆铁矿而后要让我造一个挖掘机去把张三家的房子推平了。 为了推张三的房子还必须去一波蓝翔,但想本人造一个地图只须要关注计算机技工。先观赏一下成绩: 单刀直入将饥荒的地图视为一张画布,在上边描述本人脑海里的风光的前提就是这张画布是空的,是一张白纸,这样被饥荒耽搁的画家门才有机会大展拳脚。那么如何清理就是须要思考的问题。这里提供两种清理画布的形式,一种是创立法,另一种是笼罩法。限于篇幅,本文中次要给出创立法的形容。波及的残缺代码及资源可在公众号"计算机技工"后盾回复【z_dst_1_1】取得。 创立法我愿称这种办法为“无中生有”。这种办法其实就是重建一个level,怎么创立呢?那就用到了到这篇文章中常识,文中具体阐明了创立一个新的level所需的资源以及创立没种资源的办法,这片文章中不再反复,咱们须要把重点放在细节解决上,具体包含:代码组织、零碎依赖两个方面。 代码组织 通常状况下为了代码易于保护和治理,会将代码依据模块进行划分,比方创立地图时须要的资源有room、task、taskset等,而这些资源都是能够随便增加和批改的,因而将没种资源独自命名为一个文件夹,每种具体的资源又依据资源名创立资源文件,比方这样: 而每个具体的资源文件中的所有内容其实就是调用接口创立相干的资源,说白了就是copy & paste且不须要增加任何货色(斗宗强人能够批改),对于老手来说,倡议除了对象的名称之外不要批改任何货色,能够取得更快的成就感。当然不按这种构造来划分代码也是能够的,即便所有代码全放在一个文件里也没问题,毕竟本人看着爽才是真的爽。 零碎依赖 当把资源文件都开发(copy)实现后,就须要让各种资源都能相互看到,这波及到一个关键性的文件:modworldgenmain.lua。这个文件是官网提供的mod加载入口,文件名肯定不能写错,在这个文件中增加资源的申请会将mod中自定义的资源加载到全局,这样无论是游戏自身的逻辑还是mod中的逻辑想要拜访mod中自定义的资源就都莫得问题了,申请相似这种: modimport("scripts/map/layouts/z_default_start")modimport("scripts/map/layouts/z_start_layout")modimport("scripts/map/location/z_location")modimport("scripts/map/rooms/z_room_1")modimport("scripts/map/tasks/z_task_1")modimport("scripts/map/tasksets/z_taskset_1")modimport("scripts/map/levels/z_level")因为自定义的mod中也会应用到零碎的资源,比方WORLD_TILES对象,因而还须要在modworldgenmain.lua中导入相干的系统资源: require("constants")require("map/rooms")require("map/tasks")require("map/level")require("map/network")留神:require的门路是相对路径,该门路是绝对于Don't Starve Together\data\scripts的。通常为了批改零碎中已有的对象(减少一个属性或者批改某个属性的值或者删除属性),须要在modworldgenmain.lua中退出这样代码: GLOBAL.setmetatable(env,{__index=function(t,k) return GLOBAL.rawget(GLOBAL,k) end})当然一个残缺的mod还须要一个形容文件:modinfo.lua,这个文件没啥好说的,倡议公众号"计算机技工"后盾回复【z_dst_1_1】获取残缺的mod文件看一下。 就这么简略,创立法创立了应用创立法创立了一个属于你本人的map。那么,这就完结了么? 加载mod&抉择预设对于老手同学来说,如何将本人开发的mod运行起来仿佛也是一个脑阔疼的问题。或者局部有根底的同学晓得须要将mod根目录拷贝到Don't Starve Together\mods目录下即可,然而进入游戏勾选mod并自豪感爆棚的进入游戏想要验收一下胜利的果实的时候,却发现生成的地图还是零碎自带的: 这个时候先别骂我写的辣鸡教程毁青春,倡议在勾选mod后进入森林界面抉择预设之后再生成世界: 留神:mod根目录指的是modworldgenmain.lua所在的目录本篇内容到此结束。没错是真的完结,你问我怎么跟成绩图不统一?别急,下篇文章就见分晓~ See you next time! Happy Playing!!!

November 4, 2022 · 1 min · jiezi

关于程序员:华为的认证报名费是多少钱没通过还能再考吗

对于当初的人来说,想生存得好,就须要足够的钱,二能挣到钱的惟一前途,就是比他人优良、比他人致力,也就是要内卷,尤其是对于IT行业来说,过硬的技术是是失去岗位的惟一条件,给公司发明的价值,是你能要求高工资的惟一资本。 在面试时,你能拿出的技能证书,就是你和面试官会谈的筹码;在聊工资时,你的能力就是你的底气,于是很多我的项目经验不足的人就会抉择考取华为云认证来减少本人的筹码;工作几年的人,也会抉择华为云认证来帮忙本人升职加薪,这小小的一个认证,到底有什么劣势呢?上面就和大使好好理解一下吧。 华为云认证简介 从上世纪60年代起,互联网慢慢走入千家万户,逐步扭转了咱们的日常生活,各个国家都在倒退本人的互联网技术、互联网经济,我国的华为公司也是其中一员,自华为成立以来,便一直地在倒退互联网技术,近几年更是追随倒退,研发云计算、大数据、物联网、人工智能等技术。尽管起步晚,然而华为云的技术倒退快,当初曾经在国内市场上有不小的份额,而且华为云的认证起步早,零碎欠缺。 华为云认证等级 1、华为云HCIA华为的最根底认证,包含有云计算、数通、大数据、云服务等方向,适宜学习IT行业的学生、想转行云技术的人等,考试内容多是对于华为云产品的根底内容,在学习过程中能够给本人打下良好的根底。 考试费用:180美元试卷题型: 单选题、多选题、判断题、填空题、拖拽题 考试时长: 90min 及格分/总分: 600/1000 2、华为云HCIP对于毕业行将加入工作的大学生,想在公司更近一步,晋升本人的能力的打工人来说,华为云中级认证就很适宜,内容除了华为云产品的理论知识外,还有很多技术型常识,对于考生来说,是非常适合晋升本人能力的。 考试费用:300美元 试卷题型: 单选题、多选题、判断题、填空题、拖拽题 考试时长: 90min 及格分/总分: 600/1000 3、华为云HCIE华为云专家级的认证,对于很多人来说,这是一个能够考,但没必要的证书,一方面是证书的价格比拟昂扬,一方面是证书的考试模式比拟难,须要口试和试验两门,考据次要是为了做我的项目、投资本人,须要本人来思考值不值得。 考试费用:300美元、8000人民币 试卷题型: 单选题、多选题、判断题、填空题、拖拽题 考试时长: 90min 及格分/总分: 600/1000 华为云认证如何备考 华为云的考试,每门都只有一次考试机会,不小心没通过就须要从新购买考试券,很多人为了能顺利通过考试,会寻找对应题库,帮忙通过考试,而且华为云的认证视频,在官网上都是收费的,能够帮忙学习,有须要的人能够加在认证大使网站上寻找对应题库,具体理解。

November 4, 2022 · 1 min · jiezi

关于程序员:Tab-Switcher-快捷Tab切换器

日常的办公和生存中,常常要用浏览器关上多个 Tab,并不停的来回切换,对于经常习惯关上数十个Tab的人来说,不经意中就节约掉了海量的毛细工夫。联合自己本人的实践经验,特写了一款专门解决此问题,大幅提高Chrome工作效率的插件,不仅能够疾速预览、搜寻 Tab,更反对自定义拖拽工作、保留空间,将 Tab 老本降到最小。 Tab Switcher 嵌入式全屏面板 疾速双击 shift 后即可像零碎级任务切换面板一样,疾速显示、预览以后所关上的所有Window、Tab,高深莫测、疾速定位。点击题目即可切换到指标 Tab   弹窗式面板 除了嵌入式的全屏面板外,Alt+P(代表Preview) 也能够呼出弹窗式的面板,不占用以后的页面空间,适宜 Tab 数量不是太多的场景。 自在布局 反对 4 种布局,适宜不同的屏幕大小和远视习惯 多关键词快捷搜寻 通过关键词含糊匹配,疾速过滤多个指标 Tab,专一于以后的工作内容,而无需迷乱于数十个 Tab 中。 标签分组 最多反对 5个自定义分组标签,能够疾速定制场景化的工作区。并通过激活不同的分组,疾速切换不同的工作场景,比关键字过滤更为高效和专一。   跨窗口拖拽、排序 将相干的 Tab 有序放在相邻的中央是良好的习惯,但Chrome本身的Tab排序和切换并不灵便,跨窗口解决更为繁琐。 Tab Switcher 反对高自由度的拖拽、排序,让任意窗口间的拖拽、排序都简洁、顺滑。

November 4, 2022 · 1 min · jiezi

关于程序员:搭建分布式监控系统CAT

前言 本文搭建CAT是基于本地虚拟机,零碎为centos7。CAT基于Java开发的实时利用监控平台,包含实时利用监控,业务监控。能够无效的监控各种url,sql以及代码块的运行状况以及运行工夫。 1、下载 cat的下载地址:github.com/dianping/ca… 2、配置文件 配置cat须要几个配置文件,能够用从github地址上下载的我的项目的script目录下找到。别离是Cat.sql(mysql的建表语句),datasources.xml(cat数据库的配置文件),client.xml(客户端的配置文件),server.xml(服务端的配置文件)。 将client.xml文件放在/data/appdatas/cat/目录下,如果是windows环境,则在tomcat运行的盘,新建/data/appdatas/cat/目录,将client.xml文件放入 2.1、批改配置文件 确保对/data/appdatas/cat和/data/applogs/cat有读写权限,/data/appdatas/cat目录下须要搁置以下配置文件: datasources.xml,须要搁置在服务端的目录下,文件配置内容如下图: server.xml,须要搁置在服务端的目录下,文件配置内容如下图: client.xml,须要搁置在服务端以及客户端的目录下(/data/appdatas/cat),文件配置内容如下图: 3、数据库数据库 配置一个cat应用的数据库,命名为cat,将下载的Cat.sql中的脚本刷进去。 4、启动 将cat.war包搁置在tomcat的webapps下。并启动tomcat。此时须要更新cat数据库表为config中name=routerConfig的content中的内容,改为如下内容,backup-server为服务器地址 此时有2种形式使该批改失效:重启服务;将该数据的modify_date更新为以后工夫。 5.我的项目中如果引入cat 须要在我的项目的pom文件中退出 在web.xml减少以下filter,Filter放在url-rewrite-filter 之后的第一个,如果不是会导致URL的个数有限多,比方search/1/2,search/2/3等等,无奈监控,后端存储压力也变大。 在resources资源文件src/main/resources/META-INF/文件夹下中的app.properties文件,加上domain配置,如:app.name=kingkong-pc-web 在代码中须要的中央埋点 6、应用 cat启动胜利后,并且配置了客户端,能够登录localhost:10000/cat/r查看cat日志(该地址依据具体cat服务器地址输出) 如果页面上有接进来的客户端的domain配置的选项,则cat接入胜利。

November 4, 2022 · 1 min · jiezi

关于程序员:Java-定时任务技术发展历程

定时工作是每个业务常见的需要,比方每分钟扫描超时领取的订单,每小时清理一次数据库历史数据,每天统计前一天的数据并生成报表等等。常见的解决方案有XXL-JOB、Spring-Task等。本篇文章着重于探讨Java 定时工作技术的倒退历程。 一、Timer java.util.Timer 是JDK原生的工具类,用于创立定时工作。 创立 java.util.TimerTask 工作,在 run 办法中实现业务逻辑。通过 java.util.Timer 进行调度,反对依照固定频率或指定Date时刻执行。所有的 TimerTask 是在同一个线程中串行执行,相互影响。也就是说,对于同一个 Timer 里的多个 TimerTask 工作,如果一个 TimerTask 工作在执行中,其它 TimerTask 即便达到执行的工夫,也只能排队期待。如果有异样产生,线程将退出,整个定时工作就失败。 TimerTask timerTask1 = new TimerTask() { @SneakyThrows @Override public void run() { System.out.println("timerTask1 run ..."); Thread.sleep(10000); System.out.println("timerTask1 finish ..."); }};TimerTask timerTask2 = new TimerTask() { @Override public void run() { System.out.println(System.currentTimeMillis()); System.out.println("timerTask2 run ..."); }};Timer timer = new Timer();DateTime date = DateUtil.parse("2022-08-04 15:30:00", DatePattern.NORM_DATETIME_PATTERN);timer.schedule(timerTask1, date);timer.schedule(timerTask2, 15000);二、ScheduledExecutorService ...

November 4, 2022 · 1 min · jiezi

关于程序员:怎么修改请求的参数和响应

代理三脚猫的程度(可能还没有),好忘性不如烂笔头,这边简略记录下,怎么批改申请的参数和响应(当线上有问题的话,复制线上的响应)。 1、关上charles,最好是v4.5.6版本,其余版本,在代理https局部网址会生效。 2、复制想要的参数 或者 响应,我这边是复制响应了 3、本地页面(其余页面也一样)刷新,而后看下charles捕捉到的,接口申请,打上断点 4、再刷新页面,就能够批改申请参数和响应了,我这边把响应批改了

November 4, 2022 · 1 min · jiezi

关于程序员:Jenkins自动前端代码

Jenkins主动前端代码 最近公司我的项目重构,PHP的前后端代码拆散,当初前端代码须要npm run build,当初依据之前的状况,进行前端构建拉取推送。 一、环境配置 [[email protected] ~] curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.8/install.sh | bash#运行实现后须要退出以后环境,在连贯一下,装置胜利后在/root/.nvm[[email protected] ~] nvm --version0.33.8[[email protected] ~] nvm install --lts #装置最新node[[email protected] ~] node -v #查看是否装置胜利v16.14.2[[email protected] ~] npm -v8.5.0上面是罕用的nvm命令nvm ls-remote:列出所有的node版本nvm ls:列出本地曾经装置的node版本nvm install [-s] : 装置特定版本的node,比方:nvm install v6.0.0装置最新6.0.0的node。nvm use [–silent]:切换到制订版本nodenvm current :以后 node 版本nvm alias [别名] [node版本号] :给不同的版本号增加别名nvm unalias [别名] :删除已定义的别名nvm alias default [node版本号] :设置默认版本二、npm设置国内源 web站点:npmmirror.com Registry Endpoint:registry.npmmirror.com [[email protected] ~] npm config set registry https://registry.npmmirror.com #设置为国内的淘宝镜像源[[email protected] ~] npm config get registry #验证一下,返回为刚刚设置的镜像https://registry.npmmirror.com三、进入到我的项目外面,装置依赖环境和build ...

November 4, 2022 · 1 min · jiezi

关于程序员:使用-Alice-inspector-和-Dio-进行-Flutter-API-日志记录

应用 Alice inspector 和 Dio 进行 Flutter API 日志记录 前言 有没有发现自己处于这样的状况下,当一个个性被显示或者一个办法被触发时,你必须找出哪个 API 被调用? 我就当你见过了 一种简略的办法是在终端中记录 API 调用。 然而终端很容易变得横七竖八。为了解决这个问题,咱们将应用 Alice 查看器,它将帮忙咱们轻松地记录和无效地共享 API 调用数据。 咱们将应用 Dio 进行 API 调用。 https://pub.dev/packages/dio 注释首先,咱们将创立一个 Dio helper 类来进行所有 API 调用。 API 助手类import 'package:connectivity/connectivity.dart';import 'package:dio/dio.dart';import 'package:helpwise/api/interceptor.dart';import 'package:helpwise/my_app.dart';import 'interceptor.dart' as interceptor;class ApiHelper { ApiHelper() { setUpOptions(); } Dio _dio = Dio(); late BaseOptions baseOptions; setUpOptions() async { baseOptions = BaseOptions( baseUrl: 'https://app.helpwise.io/', connectTimeout: 30000, receiveTimeout: 30000, validateStatus: (status) { return status! < 500; }, ); _dio = Dio(baseOptions); _dio.interceptors ..add(LogInterceptor(requestBody: true)) ..add( interceptor.Interceptor( DioConnectivityRequestRetrier( connectivity: Connectivity(), dio: _dio, ), ), ) ..add(alice.getDioInterceptor()); }//*GET API CALL Future<Response> getRequest(String path) async { try { final result = await _dio.get( path, ); return result; } catch (e) { rethrow; } }//* POST API CALL Future<Response> postRequest( String uri, { data, }) async { try { Response response = await _dio.post( uri, data: data, ); return response; } catch (e) { rethrow; } }}这里有根本 GET,POST api 调用。 ...

November 4, 2022 · 2 min · jiezi

关于程序员:从元宇宙到Web30新赛道的职场人该怎么找工作

不可否认,从年初开始,整个互联网行业求职市场状况就不是很乐观,求职者要如何调整心态备战面试,能力高效求职找到心仪的工作呢?如果你也有这样的困惑,这篇文章必读!天音控股CHO张云喻(资深企业人力资源管理专家)、小爱科技美女CEO谈华芳(人资平台掌舵人)做客慕课直播间,有针对性的提出了解决这些困惑的要害,给出了绝对的解决方案。 01 隐没的不是金九银十,而是互联网开启了新赛道 张云喻:前些年区块链掀起了互联网时代的新热潮,继区块链后,元宇宙、Web3.0的再一次引爆整个互联网。 行业大佬纷纷入局的元宇宙被称为互联网的下一个风口,而Web3.0则被认为是元宇宙的变革。新技术新风向的到来,势必会给传统互联网带来肯定的冲击和挑战,元宇宙和Web3.0的到来,正悄悄地扭转互联网行业将来的发展趋势,同样,也决定了大家将来的求职方向,以及企业选用人才的规范。 现在互联网的倒退,未然进入了下半场,无论是腾讯还是阿里,都纷纷开拓翻新产业倒退的新门路,例如小米官宣要造新能源汽车、腾讯发表打造智慧城市、阿里打造犀牛智造数字工厂... 当传统互联网不再满足时代经济倒退的要求时,互联网技术终将会被带入到传统产业从新做一遍,这也为产业互联网开启了新蓝海。 02 纵观互联网行业发展趋势,该如何减少就业机会,缩小焦虑 谈华芳:想要减少本身的职场竞争力,减少就业机会,咱们须要先理解目前互联网行业的发展趋势。目前现有的互联网板块,例如社交、游戏、电商、社区等,流量根本已达到天花板高峰,大厂在致力寻求新的增长点,小厂也靠近可能的另辟蹊径筹备杀出一条新倒退路线。正因为如此,无关行业专家认为ToB方向的倒退业务将会成为将来互联网短时间内的发展趋势,而元宇宙、Web3.0、数字云生、隐衷平安等,随着新技术的一直倒退和利用,这些代名词势必会成为将来互联网倒退的支流趋势。 在既定已知的行业发展趋势下,互联网人该如何减少就业机会,找准新赛道抓住新倒退红利? 从往年的招聘待业局势来看,互联网对于人才的要求在一直进步,这就须要大家一直地进步职场综合竞争力以及学习的能力。其次,细分行业发展趋势下的新赛道,优先选择热门有前景的倒退行业。有时候,抉择比致力重要。 大家必定要说这不还是卷?没错,行行都在卷,但还是要找到工作的趣味点,职业倒退路线千千万,找到本人想走的那个,最终能力实现一生学习,一生工作。 03 对标大厂用人筛选规范,什么才是企业须要的人才 张云喻: 1、教训和能力 工作教训,代表着求职者的能力,也是用人单位筛选候选人的一道重要门槛。有教训有能力=到岗即用。不过即便不足工作教训,但如果企业认为你十分有发展潜力,也会破格录取你。 发展潜力包含:学习能力、创新能力等。这也就是为什么在面试过程中,用人单位总会问你之前做过哪些项目,我的项目施行过程中你是如何推动的,在面临突发问题时你是如何应急解决的。通过你的形容去分别你的沟通能力、协调能力和解决问题的能力,进而评估你的发展潜力。 有人说我没有做过很多我的项目,工作中大部分工夫都在CRUD,业务场景繁多怎么办?如果你没有很多教训,那就想方法去发明教训,在学习中多去尝试接触不同业务类型的我的项目,比方社交、电商等业务简单,技术要求高的,多去模仿我的项目实际,补充有余,以此来开辟视线,晋升开发思维能力。 2、态度和情商 有什么样子的态度,你就会抉择什么样的行为,态度决定所有,所以工作中端正的态度往往比能力更重要。从实质上来说,工作能力是综合素质的体现,而工作态度则是人对工作主观能动性的体现。企业认为员工的态度越好,能力倒退空间就越大,两者兼得,对团队的产出和奉献天然也就越大。 有教训有能力有态度,面试官还会偏重考查求职者的情商。候选人的心态是否成熟,情绪稳定性如何,人际敏感度高不高,是否能较好地管制本人的情绪并感知别人的情绪变动?用来判断求职者在将来的工作中是否能够很好的融入团队,无效的纵向沟通,顺利合作。 3、集体价值观 对于任何一个企业而言,只有当企业内绝大部分员工的集体价值观趋同时,整个企业的价值观能力造成。所以企业想要的人才,肯定是要与企业价值观相匹配的。 价值观相匹配,企业不再须要放心员工呈现较高的流失率,尽心造就期待员工高价值产出就行。对于员工而言,一个企业的价值观是能够耳濡目染到员工本身的,它能够调动员工的积极性,荣誉感,使命感,帮忙员工最终实现成就感,集体价值往往要在企业价值的烘托下能力充分体现的。

November 4, 2022 · 1 min · jiezi

关于程序员:工作多年之后回顾经典排序算法

原文链接 排序都要做的事件是比拟和替换 稳固排序:排序前后,两个相等的元素在其序列中的前后地位程序雷同 这里只有插入排序和归并排序是稳固排序 以下示例均假如咱们要从小到大进行排序 抉择排序非稳固排序 排序效率和输出无关 抉择排序的根本步骤:先找出最小元素放到0号地位,再找出次小元素放到1号地位,再找出次次小元素放到2号地位,以此类推 代码实现#ifndef __SELECTIONSORT_H__#define __SELECTIONSORT_H__class Selection{public: //抉择排序 void Sort(char *a, int length) { for (int index = 0; index < length - 1; ++index) { //找出从以后地位index开始到前面所有元素中最小元素的下标 int indexOfCurMin = index; for (int i = index + 1; i < length; ++i) { if (a[i] < a[indexOfCurMin]) indexOfCurMin = i; } //将找到的最小元素和index地位上的元素进行替换 int temp = a[index]; a[index] = a[indexOfCurMin]; a[indexOfCurMin] = temp; } }};#endif个性该算法的长处是对输出数据的挪动次数起码。毛病是运行效率低,无奈解决大规模的数据 ...

November 4, 2022 · 7 min · jiezi

关于程序员:三位大咖的研发效能实战笔记|大师课精华全回顾

近几年,企业数字化转型、软件研发降本增效是日趋风行的话题,而这些问题最基本的指向,则是「研发效力」。不过在企业规模和软件复杂度一直攀升的势态下,该如何在晋升效率的同时,更好地产出业务价值呢?这是研发效力目前要解答的关键问题。 如果具体到研发效力晋升与改良的实际中,亟需咱们解决的问题其实还有一连串,譬如: 咱们还停留在传统我的项目组合治理阶段,效力晋升该从哪里动手?团队正处在效力治理转型中,该如何抉择适宜本人的办法呢?大家关注的度量指标不太统一,很容易引发团队矛盾,还能持续推广吗? 事实上,这些也是 ONES 始终以来重点关注的问题,由此,「ONES 研发治理巨匠课」应运而生。 本季巨匠课是精品公开课,蕴含六期直播课和一期圆桌会议。进行到当初,咱们曾经相互陪伴走过了六期,凝听了张乐、冯斌、董晓红三位老师的洞见。他们聚焦于研发效力改良与晋升,从效力度量、精益、麻利、大型团队合作等多个维度动手,分享了相干的前沿实践、最佳实际和落地方法论,心愿能帮忙你梳理出研发效力常识的主脉络,同时结合实际状况,摸索出最合适本人的实际办法。 从7月14日启动到当初,课程曾经继续三个月了,不仅时间跨度较长,整体的常识密度也较大,所以在进入下期收官的圆桌探讨之前,就让咱们「费曼一下」,通过文字回顾一下过来六期的精髓内容吧。舒适提醒,对于每一期直播课,此前咱们都整顿了完整版的课程回顾,你能够增加小蓝的企业微信,获取对应的 PPT、视频回放和直播回顾等。 「黄金三角」模型,提质增效两不误 第一期巨匠课由 DevOps 与研发效力资深技术专家张乐老师主讲,分享的主题为《研发效力的黄金三角及需要与麻利合作畛域的实际》。他次要围绕研发效力的效率和有效性,对三个问题进行了思考与答复: 一是研发效力的落地问题,并借此提出了效力度量的高阶模型,试图答复对于交付效率实质的问题;二是以终为始,对于「软件研发里最重要且最难的需要问题」,提出了需要与麻利合作畛域的六大实际形式;三是探讨研发效力落地施行的门路问题,指出良好的组织构造包含业务团队、工具团队、效力专家和组织级治理团队等四种。 值得一提的是,张乐老师在调研了国内外多家公司后,从他们的最佳实际中提炼出了研发效力的「黄金三角」模型,即从效力平台、效力实际和效力度量三个维度关注研发效力,用研发场景作为主线去贯通产品的性能和逻辑,从而更高效、更牢靠、可继续地交付更优的业务价值,为业务赋能,助力企业实现效力晋升。 最初,张乐老师还分享了一句话:「不躺平,不内卷,行稳致远」。在他看来,真正让效力晋升,让好的理念、好的办法、好的技术深刻到日常研发工作中,帮忙咱们变得更高效,凭借的就是「行稳致远」这四个字。咱们共勉。 精益+麻利,让有价值的需要流动起来 董晓红老师作为 ONES 研发效力改良的征询参谋,对于改良实际中的问题更为关注,因而她在第二期课程里分享的主题就是《精益麻利组合治理晋升研发效力》。从研发场景登程,探讨如何通过精益和麻利治理思路,让有价值的需要顺畅、高质量地流动起来,从而晋升企业的研发效力。 晓红老师善于寻根究底。她从精益的起源、麻利的历史和根本框架开始讲起,让咱们理解了精益和麻利是如何在 IT 软件应用中演进的,以及在其中该起到何种作用。帮忙咱们去伪存真,防止在纷繁复杂的信息中走入误区,从而意识真正的精益和麻利。 在此基础之上,她还联合具体步骤,为咱们解说了精益施行的五大准则、精益看板的核心内容和五大实际。同时又将 Scrum 和 Kanban 进行比照,便于咱们在实践中可能对这两种办法灵活运用、互相借鉴。 最初,晓红着意强调,能效、流程、办法工具是从「事」的角度登程,组织则是从「人」的角度登程。研发效力的晋升,无论是看板实际还是麻利 Scrum 实际,更多解决的是如何让有价值的需要顺畅、高质量地流动。所以咱们要想晋升效力,不能仅靠局部的治理实际,还须要一些工程实际,比方继续集成、继续部署、继续监控、自动化测试等,造成一个闭环作业。 「价值增长飞轮」,为业务价值强赋能 在第三期课程中,ONES 联结创始人兼 CTO 冯斌老师为咱们带来了《大型软件团队高效合作的办法和实际》的精彩分享。他聚焦于「大型软件团队合作」这一陈词滥调的痛处,解说了团队合作中的常见难题,也建设性地提出了避坑策略。 冯斌老师领有多年的软件研发团队治理教训,深切体会到研发管理者广泛关注的问题,是如何在保障效率、晋升效率的同时,还能更好更快地产出业务价值。基于此,他将大型团队合作中的痛点问题进行了演绎分类,提出了「价值增长飞轮」的概念。他认为要保障团队的高效及价值输入,须要三个重要的治理办法,别离是指标治理、组织治理、端到端数字化项目管理。这三个「飞轮叶片」是相互依赖、互相推动的关系,当三个叶片同时推动,大型团队的业务价值能力疾速晋升,实现业务增长。 效力晋升来自于针对性的改良 第四、五期课程持续由张乐老师来分享,前者的主题是《研发效力度量的行业趋势及五项精进》。 要晓得,研发效力数字化须要从无效的效力度量开始,没有度量,就无奈改良和治理。因而张乐老师在这期课程中重点解读了效力度量的五项精进,别离是建设度量的基础设施、设计度量指标体系、提炼洞察分析模型、落地洞察产品,以及数据驱动的试验思维。并将这五项精进作为效力度量的施行框架,目标是更无效地帮忙企业改良效力。 拿第五项精进来举例,张乐老师从数据驱动的角度总结了效力度量的四个关键点,别离是:一次只解决一个问题;零碎思考,以整体形式思考束缚;明确范畴、工夫、度量指标、胜利规范;基于数据的证据,继续试验。 说句题外话,这期的 Q&A 环节同样值得关注。很多同学提的问题十分理论,也给人以启发,比方「如何做到偏心度量」、「效力度量是否应该和 KPI 挂钩」、「团队达到何种规模才倡议去做效力度量」。对此,张乐老师都给予了针对性的答复,也联合本身实际给出了可供参考的倡议。总的来说,效力晋升不来自于度量自身,而来自于针对性的改良。 通过价值流剖析,无效解决效力瓶颈 第五期分享的主题为《通过价值流分析方法无效洞察和解决研发瓶颈》。这期课程是在第四期「效力度量的五项精进」所搭建的框架上,具体拆解了「洞察分析模型」这部分内容,并重点解说了基于流框架的价值流分析模型。 价值流剖析有五大流动指标,别离是流动效率、流动工夫、流动速率、流动负载和流动散布。综合利用好这五项指标,就能够讲述一个关于软件交付价值流的残缺故事,也能够答复软件交付效率该如何进步这个实质问题。与此同时张乐老师也揭示咱们,不能一刀切地去思考问题,而是要依据产品以后所处的阶段,灵便抉择失当的、能让企业实现利益最大化的流动散布。有了价值流剖析的五大指标后,该如何将效力度量指标与业务后果关联在一起,这也是十分重要的。对于这个问题,张乐老师给出的倡议是,肯定要想方法在研发指标与业务指标之间建设映射,一直试验和摸索相关性,建设 IT 交付和业务后果之间的那一层缺失的连贯。也只有这样,咱们能力辨认效力的瓶颈所在,从而驱动优化改良。 详解客户效力降级的计划与思路 第六期的分享依然是董晓红老师。在本次课程中,她通过对某世界 500 强企业晋升效力理论案例的解析,为咱们全面展现了确定研发治理降级的整体计划与思路,并演示了该如何基于 ONES 产品治理我的项目,切实有效地帮忙企业解决理论工作中的效力问题。 有了计划后,确保计划落地同样是亟待解决的重要问题,不过也经常被大家所疏忽。晓红老师联合团队实际与落地的教训,形象出了保障计划落地的配套七步法,不便其余团队复用。其中最受大家好评的是第二条和第五条准则,即:高低兼顾:在设计流程标准时,不仅要兼顾管理层的诉求,更要真正为执行层思考,看看这些工具是否真正帮忙执行层工作得更高效,是否解决理论问题。标准化兼顾翻新:规范应该是底线,尽量在方向上疏导,同时放宽执行细节,激励团队做本人的翻新。 写在最初 以上就是 ONES 研发治理巨匠课前六期的重点回顾。置信通过这些内容的学习,对于研发效力的行业趋势、业内的一些实际案例,以及效力晋升与改良当中的思路,曾经了然于胸了。 11月16日(周三)19:30,将迎来本季巨匠课的收官之作。这一次,咱们将采纳圆桌会议的模式,邀请 3 位不同畛域的行业大咖做客直播间,他们别离是 DevOps 与研发效力资深技术专家张乐、前 OPPO 平台技术高级总监黄良懿、积梦智能 CEO 谢孟军。 ...

November 3, 2022 · 1 min · jiezi

关于程序员:Flutter-7-个开源项目推荐-01

Flutter 7 个开源我的项目举荐 01 前言增强你的 Flutter 开发 浏览大量代码是进步开发技能的最佳办法之一。开源我的项目是学习最佳实际、编码格调和其余许多主题的最佳场合。 软件开发最须要的畛域之一是跨平台的挪动利用程序开发。Flutter 是你能够应用的最风行的跨平台挪动利用开发工具之一。明天,咱们来看看 7 个开源的 Flutter 我的项目,它们能够帮忙你成为一个更好的 Flutter 开发者。 注释1. 电影 inKino 如果你想晓得如何将源代码架构设计成能够在多个平台上运行,那么这将是一个很好的资源。这个我的项目是一个多平台的 Dart 应用程序浏览电影和放映工夫。它有大量的自动化测试,并且在 Flutter 和 web 之间共享 40% 的代码。Android 和 iOS 应用程序都应用了繁多的 Flutter 代码库。AngularDart 被用来创立提高的网络应用程序。这个存储库有点旧,然而它能够成为学习的一个很好的资源。它在 GitHub 上有超过 3000 颗星星。 https://github.com/ducafecat/... 2 ...https://wiki.ducafecat.tech/b... 3. 动画 Pokedex 如果你想学习简洁我的项目架构 clean architecture 和动画在 Flutter ,而后这能够是一个很好的资源为你。顾名思义,这是一个口袋妖怪应用程序,建设了大量的动画和洁净的架构。它在 GitHub 上有超过 1000 颗星星。 https://github.com/ducafecat/... 4. 电子书 FlutterEbookApp 这个我的项目是一个用于浏览和下载书籍的 Flutter 应用程序。该应用程序中的所有图书都是公共畛域(过期版权和完全免费)。它有很多性能,比方下载电子书,浏览电子书,收藏夹,光明模式等等。这个我的项目正在不断更新,在 Github 上有超过 1000 颗星。 https://github.com/ducafecat/... 5. 音乐播放器 Flutter-Music-Player ...

November 3, 2022 · 1 min · jiezi

关于程序员:每日一题打爆气球

【每日一题】打爆气球给定一个数组 arr,代表一排有分数的气球。每打爆一个气球都能取得分数,假如打爆气球的分数为 X,取得分数的规定如下: 如果被打爆气球的右边有没打爆的气球,找到离被打爆气球最近的气球,假如分数为 L;如果被打爆气球的左边有没有打爆的气球,找到离被打爆气球最近的气球,假如分数为 R。取得分数为 L X R如果被打爆气球的右边有没打爆的气球,找到离被打爆气球最近的气球,假如分数为 L;如果被打爆气球的左边所有气球都曾经被打爆。取得分数为:L*X如果被打爆气球的右边所有气球都曾经被打爆;如果被打爆气球的左边有没有打爆的气球,找到离被打爆气球最近的气球,假如分数为 R。取得分数为:R*X如果被打爆气球的右边和左边所有气球都曾经被打爆。取得分数为:X指标是打爆所有气球,返回能取得的最大分数。 【举例】 arr =【3,2,5】 如果先打爆 3,取得 3*2;再打爆 2,取得 2* 5 ;最初打爆 5 ,取得 5;总分为:6+10+5=21.如果先打爆 3,取得 3*2;再打爆 5,取得 2* 5 ;最初打爆 2 ,取得 2;总分为:6+10+2=18.如果先打爆 2,取得 3*2*5;再打爆 3,取得 3* 5 ;最初打爆 5 ,取得 5;总分为:30+15+5=50.如果先打爆 2,取得 3*2*5;再打爆 5,取得 3* 5 ;最初打爆 3 ,取得 3;总分为:30+15+3=48.如果先打爆 5,取得 2*5;再打爆 3,取得 3* 2 ;最初打爆 2 ,取得 2;总分为:10+6+2=18.如果先打爆 5,取得 2*5;再打爆 2,取得 3* 2 ;最初打爆 3 ,取得 3;总分为:10+6+3=19.返回最大分数为 50 ...

November 3, 2022 · 3 min · jiezi

关于程序员:无论你是不是程序员这篇文章你都值得一看

闲叙 大家好,我是一名爱分享"毒鸡汤"的程序员。明天的这篇文章我思考了很久,决定还是要收回来让大家看看。这不是一篇技术文章,无论你从事什么行业的工作,这篇文章都值得一读。为什么要写这篇文章? 作为一名程序员,混迹职场也四五年了。本人每天都在忙着做事,但又感觉本人什么都没做。每天过着朝九晚五、两点一线的生存,工夫长了感觉对生存失去了谋求。 最近,我也始终在思考和反思,本人到底想要什么样的生存?回顾过来的工夫本人都在做什么?想想以前的生存,感觉本人过得太劳碌了,节约了大量的工夫做一些没有意义的事件。当初想想都感觉可笑,但也怨不得他人。 你明天的状态是三年前的生存决定的,但也决定了你三年后的生存。所以,我想写一篇文章,告诫哪些不懂得珍惜工夫、原地踏步不思进取的人(包含我)。心愿咱们都可能做出一些扭转,为当前美妙的生存做一些致力! 哪些行为篡夺了咱们的工夫?早上醒来/早晨睡前都在刷手机 有时候甚至是有意识地就拿出手机刷了起来,说好的只看十分钟,一看半个小时过来了。睡前看手机会让大脑兴奋不容易入睡。宅在家里 熬夜追剧 一到周末就宅在家里追各种剧,甚至熬夜追剧,明明晓得这样做不好但又管制不住本人。不仅节约了工夫,同时也耗费了本人的能量。总是等等等... 等到今天就开始学习... 等瑜伽垫到了就开始静止... 等看完这集就去睡觉... 给本人找了很多借口,到最初一件事件都没有做成。看过就等于"学废"了 总喜爱收集各种干货,也囤了很多学习材料,然而始终不整顿不学习,就只是短暂满足了一瞬间想要学习的快感。总是忽然想起来一件事 常常到早晨才想起来白天还有什么事件没有做,还容易丢三落四的掉货色,说是本人忘性不好,实际上并没有为本人的"坏忘性"做出扭转。不停更换指标,一个都没有实现 总是元气满满地给给本人加油打气,动不动就给本人立flag,不停更换指标,然而却没有一个坚持下去的,看似很繁忙,实则一个指标都没有实现。容易被扩散注意力 学习或工作的时候,一会儿回一下敌人的信息聊一聊八卦,一会儿又去刷刷手机吃吃瓜,人不知;鬼不觉工夫就过来了,手头上的事件却没有做完。学过了就忘了 没有学习布局、读书思考、不做总结。看到什么学什么,学到时候感觉很有播种,然而不温习、不被动思考、不去利用,一段时间当前忘得干干净净。过分谋求完美主义 对于每一件事件都谋求完满,在一些不重要的细节或者鸡毛蒜皮的小事上重复纠结,导致决策疲劳,反而没有精力去思考重要的事件。分不清事件的主次 不懂得辨别轻重缓急的事件,自觉地埋头苦干,分不清主次,把大部分的工夫和经验全副耗费在无关紧要的小时下面,千里之堤;溃于蚁穴。很在意别人对本人的认识 把注意力都放在了他人的身上,而不是本人的身上,很在意他人对本人的认识,心理比拟敏感,做任何事件都小心翼翼,心愿被人喜爱和了解,让本人很累。适度缅怀过来 总是悔恨过来的某个抉择,如果...就好了,或者沉迷于过来的辉煌历史,眼光始终无奈向前看。不仅节约了工夫,还停留在原地踏步。总结 下面说的内容很多,但也不是全副状况,我只是依据本身和身边遇到的一些状况,演绎进去的一部分信息。当你读完这篇文章,感觉对你有那么一点点的触动、感觉本人必须要做出一些扭转,对我来说这篇文章写的就是有价值的。 在以后大的社会环境中,各行各业都在内卷,咱们不晋升本人,怎么在这动荡不安的社会中站稳脚跟?认真想一想:比咱们优良的人在努力学习,比咱们差的人也在致力追赶,咱们还在原地踏步,最初肯定会成为垫底的那个人。 ![我是一个爱分享"毒鸡汤"的程序员,无论是技术问题还是生存懊恼,都能够来找我聊聊。 不肯定能给到你最称心的答案,但能帮你理清思路、找到突破口。](https://picx1.zhimg.com/80/v2...)

November 3, 2022 · 1 min · jiezi

关于程序员:算法题重建二叉树

6 要求工夫限度:1秒 空间限度:32768K 题目形容输出某二叉树的前序遍历和中序遍历的后果,请重建出该二叉树。假如输出的前序遍历和中序遍历的后果中都不含反复的数字。例如输出前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建二叉树并返回 解题思路解题的前提:两个序列中必须有一个中序序列 前(后)序序列用于提供根节点,根节点就是序列第一个元素(最初一个元素) 中序序列用于确定以后根节点的左右子树有哪些节点 如下图所示: 确定了左右子树有哪些元素之后就持续递归 代码/*Definition for binary treestruct TreeNode{ int val; TreeNode *left; TreeNode *right; TreeNode(int x) : val(x), left(NULL), right(NULL) {}};*/class Solution{public: TreeNode* reConstructBinaryTree(vector<int> pre,vector<int> vin) { int psize=pre.size(); int vsize=vin.size(); if(psize==0 || vsize==0 || psize != vsize) return NULL; return reBuildBinaryTreeCore(pre, 0, psize-1, vin, 0, vsize-1); } TreeNode* reBuildBinaryTreeCore(vector<int>& pre, int startIdxOfP, int endIdxOfP, vector<int>& vin, int startIdxOfV, int endIdxOfV) { int valOfRoot = pre[startIdxOfP]; TreeNode* root = new TreeNode(valOfRoot); if(startIdxOfP == endIdxOfP) { if(startIdxOfV == endIdxOfV) return root; else { cout << "有效输出" << endl; abort(); } } else { int idxOfRootInV = 0; for(idxOfRootInV = startIdxOfV;idxOfRootInV <= endIdxOfV && vin[idxOfRootInV] != valOfRoot;++idxOfRootInV) { } if(vin[idxOfRootInV] != valOfRoot) { cout << "有效输出" << endl; abort(); } int leftLength = idxOfRootInV - startIdxOfV; //左 if(startIdxOfV <= idxOfRootInV - 1) root->left = reBuildBinaryTreeCore(pre, startIdxOfP + 1, startIdxOfP + leftLength, vin, startIdxOfV, idxOfRootInV - 1); //右 if(idxOfRootInV + 1 <= endIdxOfV) root->right = reBuildBinaryTreeCore(pre, startIdxOfP + 1 + leftLength, endIdxOfP, vin, idxOfRootInV+1, endIdxOfV); } return root; }};小弟才浅,如果本篇文章有任何谬误和倡议,欢送大家留言 ...

November 3, 2022 · 1 min · jiezi

关于程序员:算法题从尾到头打印链表

5 要求工夫限度:1秒 空间限度:32768K 题目形容输出一个链表,从尾到头打印链表每个节点的值 解题思路链表必须要从头开始拜访,如果须要将打印程序颠倒,能够利用栈的个性。有时候办法就是这么简略 - - 如果想展现你的算法能力,能够写成递归--深度优先搜寻 代码/*struct ListNode{ int val; struct ListNode *next; ListNode(int x) : val(x), next(NULL) {}};*/class Solution{public: vector<int> printListFromTailToHead(ListNode* head) { vector<int> res; stack<int> temp; while(head != NULL) { temp.push(head->val); head = head->next; } while(!temp.empty()) { res.push_back(temp.top()); temp.pop(); } return res; }};小弟才浅,如果本篇文章有任何谬误和倡议,欢送大家留言 感激大家的点赞、珍藏 微信搜「三年游戏人」第一工夫浏览最新内容,获取一份收集多年的书籍包 以及 优质工作内推

November 2, 2022 · 1 min · jiezi

关于程序员:游戏引擎-1概述

原文链接 该系列文章次要面向齐全没有引擎根底,但具备肯定编程根底的同学。解说的内容不会开展太深刻,只心愿读者能够对游戏引擎中的技术有一个根本的了解。如果大家对其中的某些内容感兴趣,能够评论留言。我会依据大家的冀望,力不从心地开展解说。 简介电子游戏是一款软实时(soft real-time)模仿软件。软实时模仿软件须要做到能够响应实时操作,并且即便因为某些起因没有立刻响应也不会造成灾难性结果。在电子游戏这样的软实时模仿软件中的大部分数学问题没有闭合式解,因而须要进行离散的模仿能力失去一个后果。 游戏引擎正是为了实现游戏中各种各样的模仿而整合了各种各样的模块,例如物理模块、渲染模块、逻辑模块等。晚期的游戏引擎大多只能运行在特定平台,例如《雷神之锤》的引擎Quake engine、魔兽世界用的暴雪自家引擎。 起初呈现了能够跨平台运行的通用游戏引擎,例如Unity、Unreal。 <div style="position: relative; width: 100%; height: 0; padding-bottom: 75%;"> <iframe src="//player.bilibili.com/player.html?aid=262246257&bvid=BV1Ke411F7ZE&cid=878641990&page=1&high_quality=1" scrolling="no" border="0" frameborder="no" framespacing="0" allowfullscreen="true" style="position: absolute; width: 100%; height: 100%; left: 0; top: 0;"></iframe></div><div style="position: relative; width: 100%; height: 0; padding-bottom: 75%;"> <iframe src="//player.bilibili.com/player.html?aid=389714115&bvid=BV1td4y1C71P&cid=878642018&page=1&high_quality=1" scrolling="no" border="0" frameborder="no" framespacing="0" allowfullscreen="true" style="position: absolute; width: 100%; height: 100%; left: 0; top: 0;"></iframe></div> 一般来说,越通用的游戏引擎,在特定平台上的运行效率会越不如那些只能运行于特定游戏平台的游戏引擎。因为性能优化总是基于特定假如的,这个假如越繁多,优化起来会越轻松。 硬件硬件是运行游戏的物理设施,例如pc、xBox Series X、PS5、ns。 驱动驱动是负责和硬件进行通信的底层软件,常见的驱动有显卡驱动(Nvidia、AMD)、声卡驱动。有了这些驱动之后,开发人员就不须要为具体的硬件设施编写代码。驱动很好地暗藏了硬件设施的复杂性,使开发工作的复杂度升高。 操作系统在操作系统层面上,大抵上能够分成游戏专用操作系统和非游戏专用操作系统。 游戏专用操作系统有xbox的XBoxOS、ps4的Orbis OS、ns的Horizon。这些操作系统的通常常识一个轻量级的库,在游戏运行时,游戏程序简直能够占有硬件的所有资源和控制权,所以游戏运行效率很高。 而非游戏专用操作系统通常都会因为各种各样的起因只能占用硬件的局部资源和控制权,例如windows操作系统采纳基于工夫片(time-slice)的抢占式多任务(preemptive multitasking)形式来运行所有程序。 这也是为什么同一款游戏在同样硬件性能的PC和PS3下面运行,PC上可能间接变成PPT,而PS3却能够30帧稳固运行。 软件开发包(SDK)软件开发包一批性能良好的函数的汇合,这些函数又称为称为API(application programming interface)。 大部分游戏引擎都会接入第三方SDK以加强引擎的性能,通过接入SDK的形式给引擎减少性能能够缩小引擎的研发压力,同时又能取得良好的成果体现。 ...

November 2, 2022 · 1 min · jiezi

关于程序员:算法题替换空格

4 要求工夫限度:1秒 空间限度:32768K 题目形容请实现一个函数,将一个字符串中的空格替换成“%20”。例如,当字符串为We Are Happy.则通过替换之后的字符串为We%20Are%20Happy. 解题思路拿到题目之后,个别会首先想到从头开始扫描这个字符串,遇到空格就将前面所有的字符都向后挪动两格,再插入%20。尽管这个方法可行,然而工夫复杂度为O(n^2),每一个字符都会有屡次挪动 当初心愿每个字符只挪动一次。咱们要用两个指针P1和P2,P1指向字符串的最初一个字符'\0',P2指向替换了空格后的字符串尾部。每一个空格都会导致字符串增长两个字符 具体过程如下图所示 代码class Solution{public: void replaceSpace(char *str,int length) { if(str==NULL || length<=0) return; int endIndexOfOriStr = -1; int endIndexOfNewStr = -1; int curIndexOfOriStr = -1; do { ++curIndexOfOriStr; ++endIndexOfOriStr; ++endIndexOfNewStr; if(str[curIndexOfOriStr] == ' ') endIndexOfNewStr += 2; }while(str[curIndexOfOriStr] != '\0'); if(endIndexOfNewStr>=length) return; while(endIndexOfOriStr >= 0 && endIndexOfOriStr < endIndexOfNewStr) { if(str[endIndexOfOriStr]==' ') { --endIndexOfOriStr; str[endIndexOfNewStr--] = '0'; str[endIndexOfNewStr--] = '2'; str[endIndexOfNewStr--] = '%'; } else { str[endIndexOfNewStr] = str[endIndexOfOriStr]; --endIndexOfOriStr; --endIndexOfNewStr; } } }};小弟才浅,如果本篇文章有任何谬误和倡议,欢送大家留言 ...

November 2, 2022 · 1 min · jiezi

关于程序员:子数组最大异或和

子数组最大异或和数组异或和的定义:把数组中所有数异或起来失去的值。 给定一个整型数组:arr,其中可能有正、有负、有零,求其子数组的最大异或和 【举例】 arr = 【3】 数组中只有 1 个数,所以只有一个子数组,就是这个数组自身,最大异或和为 3 arr = 【3,-28,-29,2】 子数组有很多,然而【-28,-29】这个子数组的异或和为 7,是所有子数组中最大的。 剖析: 异或和没有枯燥性。两个小的数的异或和可能比两个大数的异或和大。 解法一:暴力算法 对每一个以 i 为开始和以 j 为结尾的子数组,进行异或和计算,获取全局最大的异或和,就是答案。 工夫复杂度:$O(N^3)$ 工夫复杂度:O(1) import sysdef max_xor(arr): if not arr: return 0 res = -sys.maxsize for i in range(len(arr)): for j in range(i, len(arr)): # 窗口:arr[i,j+1],计算窗口内数据的异或和 xor = 0 for k in range(i, j + 1): xor ^= arr[k] res = max(res, xor) return res解法二:前缀异或和 前缀和的性质: 归零率:A ^ A = 0恒等率:A ^ 0 = A根据上述两个性质能够推导出: ...

November 2, 2022 · 3 min · jiezi

关于程序员:学习力是这个时代的终极竞争力

并不是每个人都晓得如何学习,学习力是一种须要学习的能力。领有学习力的人,才领有这个时代的终极竞争力。 如何具备高效的学习力呢? 其实很简略,把知行合一做到位就能够了。但很多人其实并没有了解什么是“知”,什么是”行“知就是晓得,但怎么才表明本人晓得呢?能把一件事件写分明或者讲清楚才示意晓得。做就是口头,写完想法,要想方法使用这些想法。没有口头,想法就只停留在脑子里;没有口头,想法就不是教训;没有口头,想法就是假想法,晓得就是假晓得。 常识输出 咱们认为咱们只是缺乏经验,实际上,咱们连常识都是不足的。咱们潜意识里有个谬误的观点,就是认为学过了就是学会了,等在用的时候才发现无从下手。输入的成果不好,背地往往是输出出了问题。为了解决这个问题,咱们须要通过写作或分享开张本人把输出做好。 三种罕用的常识输出渠道:浏览与听课、察看生存、搜寻。浏览与听课个别取得的是作者十分成熟的常识总结,察看生存能让咱们看到更多的生存案例,搜寻则是让咱们能从更多别人的角度来了解常识。这三者是相辅相成的。善用这三种渠道能帮忙咱们更好的构建常识体系,最终的指标是把可能把常识的输出通过写作或者分享输入进来。 很多同学可能感觉没什么可写的,这其实是咱们平时记笔记的形式不对。笔记并不是记录了对方说了什么话,笔记也不是给本人的看的。笔记是给他人看的。笔记记录的是你的了解,你会如何把这个知识点讲给他人听,你就怎么记。这样下次写作的时候,素材就有了。 如何晋升搜寻信息的能力 当初很多人的问题并不是找不到输出的渠道,而是能取得常识的渠道太多了,没方法辨认高质量的常识。我这里举荐几个搜寻优质常识的办法。 长于用搜寻的关键字 文字越长搜寻到的内容越少,除非是一些齐全截然不同的问题,否则不倡议用整段文字去搜寻。很多程序问题,咱们间接拿着报错去搜,如果能找到解决方案当然好,如果没找到,记得提取下关键词再去搜。另外,搜寻其实外面有很多技巧,以前我也总结过,但这里我只讲最简略的,就是搜寻的时候善用 ”+“,”-“符号。其相干的技巧你也能够试着搜寻一下。在搜寻常识的时候有一个小技巧,为了更好地欠缺本人的常识体系,你须要搜寻一些背面案例。比方听老师讲了需要第一定律:”商品的价格越高,人们的需求量就会缩小,价格升高,人的需求量就会升高。“那么你能够反向去查一下有没有一些案例是不合乎需要第一定律的。如果有,成立的前提条件是什么? 善用垂直内业余网站 大部分状况咱们依赖谷歌、必应、百度这类搜索引擎进行搜寻,但其实很多常识在更业余的垂直内网页里成果会更好。比方程序员相干的问题你能够在infoQ,掘金这类平台搜寻。 找那些好的信息源头去获取信息 好的信息源个别是行业里公认的出版社、优质的论文、出名的行业专家、大牛课程、文章、书籍等。如果你能跟着专家面对面的交换,这其实是最快的学习形式。如果没方法做到面对面教学,那看他出的书、他出的课、写的文章、分享的视频等也都是能够的。如果你找不到行业里的大牛,你能够找身边里你意识的牛人学。听其言,观其行。退职场里你会碰到很多老师。比方你的直属下级。 主题式学习 有一个很好的疾速理解某个畛域的办法,就是主题式学习法。简略讲就是同时找很多本同一主题的书,同一主题的课程加上本人搜寻同类主题的材料一起综合性的去学习和钻研。在应用主题式学习时,要留神看那些不同的观点,不同的证据。否则就达不到好的学习效果。 常识输入 获取到常识之后做什么呢?有构造的把常识输入。如果你书评写的比拟多就能发现,写书评和不写书评齐全是两种不同的播种。怎么让本人可能保持写作?晚期须要应用一些技巧能力养成写作习惯。这里我举荐几个办法。 每天都写 不要给本人定很高的指标,只有每天写就行。哪怕只是写一个很短的笔记。尤其是那些忽然冒出来的灵感,肯定要马上写下来,不然等会就遗记了。你能找到很多能够写货色的中央。比方,你在看书的时候,总会遇到一些认同的或者不认同的观点。留言,就说这句话我不认同,为什么。或者我很认同,因为什么。 写你近期工作上能用的上的主题 如果你不晓得要写什么,我举荐你写你近期工作上能用的上的主题。写的过程实际上就是解决问题的过程。带着目标去学习更容易保持。而且本就用于口头的学习能更快播种反馈,其自身就是知行合一的。 写一些大家司空见惯,然而谬误的观点。 我最近看一些科普的内容,发现咱们生存中始终司空见惯的货色理论是有问题的。比方,我昨天看到一篇卓克老师的科普文,小儿退烧贴对退烧是没有成果的,咱们能够把这个观点的论证过程记住分享给其他人。这种分享能给人带来很多正反馈,但要留神,在分享前肯定要弄清楚论证是否足够撑持论点。 写作的表白技巧 最初,我还分享几种写作中罕用的表白技巧 用艰深的话表述业余词汇 你的读者不肯定是业余畛域的人士,而且写作跟沟通不一样。太多专业术语堆在一起,文绉绉的,反而把事件搞的很简单。 对于不好了解的概念,就举例子或者讲个故事来辅助了解 咱们在听他人故事、他人命运的时候,会把本人代入,这就让故事领有了弱小的吸引力、说服力。人脑天生对特定的文章和构造是感兴趣的。现代人喜爱看小说,哪怕小说文字不精彩,但只有构造对了,就有想接着看上来的欲望。求知,配角下一步会怎么做?危险、转折、抵触都会吸引读者的注意力。 长于做类比 我见过这样一个类别来形容银行家的。”银行家是这样的人:当天气晴朗时,他硬要把伞借给你;而当阴天下雨的时候,他又凶巴巴地要将伞发出去。“好的类比要合乎以下三个特色第一,类别的事物要特地形象,好了解;第二,类别的事件要跟所讲的概念有共通点;第三,这个共通点正好能解释概念中比拟难懂的局部;

November 2, 2022 · 1 min · jiezi

关于程序员:XSS攻击是什么-面试题

XSS攻打是什么? 要点: XSS是跨站脚本攻打、向指标网站插入恶意代码、大量用户拜访网站时运行歹意脚本获取信息 答:XSS是跨站脚本攻打(Cross Site Scripting),不写为CSS是为了防止和层叠样式表(Cascading Style Sheets)的缩写混同,所以将跨站脚本攻打写为XSS。攻击者能够通过向Web页面外面插入script代码,当用户浏览这个页面时,就会运行被插入的script代码,达到攻击者的目标。XSS的危害个别是泄露用户的登录信息cookie,攻击者能够通过cookie绕过登录步骤间接进入站点。XSS的分类分为反射型和存储型。 反射型就是长期通过url拜访网站,网站服务端将恶意代码从url中取出,拼接在HTML中返回给浏览器,用户就会执行恶意代码。存储型就是将恶意代码以留言的模式保留在服务器数据库,任何拜访网站的人都会受到攻打。预防XSS攻打的计划根本是对数据进行严格的输入编码,比方HTML元素的编码,JavaScript编码,css编码,url编码等等。 XSS的危害: 获取cookie:网站中的登录个别都是用cookie作为某个用户的身份证明,这是服务器端返回的一串字符。如果cookie被攻击者拿到,那么就能够绕过明码登录。当空间、论坛如果能够被插入script代码,那么进入空间或者论坛的人的账号就能够轻易被攻击者获取。歹意跳转:间接在页面中插入window.location.href进行跳转。 XSS的分类: 反射型XSS(非长久型XSS):通过URL参数间接注入 存储型XSS(长久型XSS):存储到数据库后读取时注入 XSS的预防:浏览器的进攻和“X-XSS-Protection”无关,默认值为1,即默认关上XSS进攻,能够进攻反射型的XSS,不过作用无限,只能进攻注入到HTML的节点内容或属性的XSS,例如URL参数中蕴含script标签。不倡议只依赖此进攻伎俩。 进攻HTML节点内容,通过本义<为<以及>为>来实现进攻HTML节点内容。预防HTML属性,通过本义"->&quto来实现进攻,个别不本义空格,然而这要求属性必须带引号。预防JavaScript代码,通过将数据进行JSON序列化。进攻富文本是比较复杂的工程,因为富文本能够蕴含HTML和script,这些难以预测与进攻,倡议是通过白名单的形式来过滤容许的HTML标签和标签的属性来进行进攻,大略的实现形式是: 将HTML代码段转成树级构造的数据 - 遍历树的每一个节点,过滤节点的类型和属性,或进行非凡解决 解决实现后,将树级构造转化成HTML代码 - 开启浏览器XSS进攻:Http Only cookie,禁止 JavaScript 读取某些敏感 Cookie,攻击者实现XSS注入后也无奈窃取此 Cookie。

November 2, 2022 · 1 min · jiezi

关于程序员:半监督学习入门基础一

半监督学习(SSL)是一种机器学习技术,其中工作是从一个小的带标签的数据集和绝对较大的未带标签的数据中学习失去的。SSL的指标是要比独自应用有标记数据训练的监督学习技术失去更好的后果。这是半监督学习系列文章的第1局部,对这个机器学习的重要子畛域进行了简要的介绍。 辨别半监督学习,监督学习和无监督学习 整个数据集中可用于训练的有标记数据的范畴辨别了机器学习的这三个相干畛域。 监督学习 是机器学习中最风行的模式,在这种模式中,能够通过标签的模式取得残缺的监督。整个数据集都有标记,即一个标签与训练数据集中的每个样本相关联。机器学习模型应用这个标签数据集训练,并冀望对新的样本预测一个标签。 监督学习次要包含两类工作:分类和回归。分类问题要求算法预测一个离散值,而回归工作是须要从输出变量(X)迫近一个映射函数(f)到间断输入变量(y)。手写数字辨认 应用(MNIST)数据集。每个样本都有一个图像和对应的数字作为标签。工作是学习从图像中预测标签(即数字)。 另一个例子是情感分类,应用IMDB数据集。每条记录都蕴含一个评论和一个相应的标签(侧面的或负面的)。这里的工作是预测给定评论的情绪。房价预测是一个回归工作,其中标签(房价)是一个连续变量。在无监督学习中,没有标记数据可用。训练数据集蕴含样本,但没有特定的冀望后果或标签。机器学习模型试图通过提取有用的特色并对其进行剖析来主动地在数据中找到构造。像聚类、异样检测、关联等工作属于无监督学习。聚类 是将数据集划分为多个簇,使同一簇中的数据点与同一簇中的其余数据点更类似,与其余簇中的数据点不类似。例如,下图(左)中的数据点能够分成3个簇,如图(右)所示。留神,簇能够是任何形态。 半监督式学习(SSL) ,正如其名称所示,介于两个极其之间(监督式是指整个数据集被标记,而非监督式是指没有标记)。半监督学习工作具备一个标记和一个未标记的数据集。它应用未标记的数据来取得对数据结构的更多了解。通常,SSL应用小的带标签数据集和较大的未带标签数据集来进行学习。 咱们的指标是学习一个预测器来预测将来的测试数据,这个预测器比独自从有标记的训练数据中学习的预测器更好。 为什么要关注半监督学习 在许多理论利用中,收集大的有标签数据集太低廉或者不可行,然而有大量的无标签数据可用。对于这种状况,半监督学习是一个完满的计划。SSL技术能够利用带标签的数据,也能够从未带标签的数据派生构造,从而更好地解决总体工作。典型的监督学习算法在标记数据集较小的状况下,容易呈现过拟合问题。SSL通过在训练过程中了解未标记数据的构造来缓解这个问题。此外,这种学习技术加重了构建大量标记数据集来学习工作的累赘。SSL办法更靠近咱们人类的学习形式。让咱们举个例子来直观地看看半监督学习的成果。在上面的图中,当只对标记数据(大的黑点和白点)进行训练(即对标记数据进行监督学习)时,决策边界(虚线)并不遵循数据“流形”的轮廓,这能够由额定的未标记数据(小灰点)来示意。因而,SSL的指标是利用未标记数据来生成决策边界,从而更好地反映数据的底层构造。 半监督学习的工作举例 CIFAR-10 — 它是由10个类的32×32像素的RGB图像组成的数据集,工作是图像分类。通常应用Tiny Images数据集中的随机图像来造成未标记数据集。SVHN —  街景门牌号数据集由实在门牌号的32×32像素的RGB图像组成,工作是分类最两头的数字。它附带一个“SVHN-extra”数据集,该数据集由531,131个额定的数字图像组成,能够用作未标记数据。Text-Classification Tasks — 亚马逊评论数据库,Yelp评论数据集。 总结 半监督学习是一种乏味的办法,用于解决机器学习中不足标记数据的问题。SSL算法还利用未标记数据来进步监督学习算法的性能。SSL算法通常提供了一种从无标签示例中理解数据结构的办法,加重了对标签的需要。

November 2, 2022 · 1 min · jiezi

关于程序员:深度聚类近来比较火的方向你知道吗

聚类(Clustering)是依照某个特定规范(如间隔)把一个数据集宰割成不同的类或簇,使得同一个簇内的数据对象的相似性尽可能大,同时不在同一个簇中的数据对象的差异性也尽可能地大。也即聚类后同一类的数据尽可能汇集到一起,不同类数据尽量拆散。 聚类概述 聚类分析在机器学习和数据挖掘中起着不可或缺的作用。学习一个好的数据表示办法对于聚类算法是至关重要的。近年来,利用深度神经网络学习聚类敌对示意的深度聚类曾经广泛应用于各种聚类工作中。 咱们从数据源的角度对深度聚类进行剖析,在不同数据源和初始条件下,从方法论、先验常识和体系结构等方面咱们能够将深度聚类办法分为四大类: 单视图深度聚类半监督深度聚类深度多视图聚类深度转移聚类 如下图所示: Deep single-view clustering 单视图深度聚类 对于传统的集群工作,咱们通常会假如数据具备雷同的模式和构造,那么这称为单视图或单模态数据。用深度神经网络(DNNs)提取这些数据的示意模式是深度聚类的一个重要特色。那么,不同的利用深度学习的技术是与 DNN 的构造高度相干的。依据已有的论文提出的构造,咱们能够将算法具话为为五类: 基于 深度自编码器(DAE) 的深度聚类基于 深度神经网络(DNN) 的深度聚类基于 变分自编码器(VAE) 的深度聚类基于 生成反抗网络(GAN) 的深度聚类基于 图神经网络(GNN) 的深度聚类 Deep clustering based on semi-supervised learning 基于半监督学习的深度聚类 当遇到待处理的数据中蕴含有大量的先验束缚时,传统的聚类办法无奈无效的利用这些先验信息,然而半监督聚类是解决这一问题的无效办法。通过在模型中增加附加信息作为束缚损失,能够使聚类办法成为半监督聚类办法。然而目前深度半监督聚类的钻研还未失去很好的摸索。 Deep clustering based on multi-view learning 基于多视图学习的深度聚类 在事实世界中,咱们遇到的数据通常来自不同的特色收集器或具备不同的构造,这些数据被称之为 “多视图数据” 或“多模态数据”,其中每个样本都有多个示意。基于多视图学习的深度聚类,其目标是利用多视图数据中所蕴含的一致性和互补性信息来进步聚类性能。目前深度多视图聚类能够大抵演绎为三大类: 基于深度嵌入聚类基于子空间聚类基于图神经网络聚类 Deep clustering based on transfer learning 基于迁徙学习的深度聚类 对于实例数量无限且维度较高的工作,有时咱们能够找一个助手来提供额定的信息。例如,如果 工作A 与另一个 工作B 类似,而 工作B 比 工作A 具备更多的信息用于聚类 (B是有标记的 或 B比A 更容易聚类),那么将信息从 B 转移到 A 是有用的。这就是常常遇到的无监督域适应(unsupervised domain adaption, UDA)迁徙学习,这种算法包含两个域:有标记的源域 和 无标记的指标域。迁徙学习的指标是将从源工作中学到的常识或模式利用到不同但相干的指标工作中,基于迁徙学习的深度聚类办法旨在利用相干工作的信息进步以后聚类工作的性能。 ...

November 2, 2022 · 1 min · jiezi

关于程序员:softmax回归的相关知识

机器学习在监督学习畛域次要解决两个问题,分类和回归问题。那么分类问题又分为二分类问题和多分类问题,而二分类问题相对来说很好解决,咱们只须要构建输入层有一个神经元的神经网络,而后联合sigmoid函数,即可实现二分类问题。而神经网络的多分类问题就绝对简单一些,如果咱们要解决三分类的问题,那么咱们构建神经网络的时候,就须要构建一个输入层为三个神经元的神经网络,而后配合应用softmax回归来实现神经网络多分类的工作。 Softmax回归的含意 通常,机器学习实践者用 分类 这个词来形容两个有奥妙差异的问题:(1)咱们只对样本的硬性类别感兴趣,即属于哪个类别;(2)咱们心愿失去软性类别,即失去属于每个类别的概率。这两者的界线往往很含糊,这其中的一个起因是:即便咱们只关怀硬类别,但咱们依然应用软类别的模型。 那么我拿一个图像分类的问题来具体阐明一下。假如每次输出的是一个图像,可能是“猫”,“鸡”和“狗”中的任意一个,那对于它们的标签示意咱们必定不能用{猫,鸡,狗}{\text{猫}, \text{鸡},\text{狗}}{猫,鸡,狗}。 于是,咱们应用统计学家很早以前就创造的一种示意分类数据的简略办法:独热编码(one-hot encoding)。 独热编码是一个向量,它的重量和类别一样多。类别对应的重量设置为1,其余所有重量设置为0。在咱们的例子中,标签yyy将是一个三维向量,其中(1,0,0)(1, 0, 0)(1,0,0)对应于“猫”、(0,1,0)(0, 1, 0)(0,1,0)对应于“鸡”、(0,0,1)(0, 0, 1)(0,0,1)对应于“狗”:softmax回归是一个单层神经网络。因为计算每个输入o1o_1o1、o2o_2o2和o3o_3o3取决于所有输出x1x_1x1、x2x_2x2、x3x_3x3和x4x_4x4,所以softmax回归的输入层也是全连贯层。 Softmax运算 那么对于多分类问题来说,应用的softmax函数即是网络输入层的激活函数,softmax函数能够对输入值进行归一化操作,把所有输入值都转化为概率,所有概率值加起来等于1。 为了将未归一化的预测变换为非负并且总和为1,同时要求模型放弃可导。首先对每个未归一化的预测求幂,这样能够确保输入非负。为了确保最终输入的总和为1,须要再对每个求幂后的后果除以它们的总和。运算公式如下: y^=softmax(o)其中y^j=exp(oj)∑kexp(ok)\hat{\mathbf{y}} = \mathrm{softmax}(\mathbf{o})\quad \text{其中}\quad \hat{y}_j = \frac{\exp(o_j)}{\sum_k \exp(o_k)}y^=softmax(o)其中y^j=∑kexp(ok)exp(oj) 其中 y^j\hat{y}_jy^j (模型的输入)能够视为属于 类jjj 的概率。而后咱们能够抉择具备最大输入值的类别 argmaxjyj\operatorname*{argmax}_j y_jargmaxjyj 作为咱们的预测。例如,如果y^1\hat{y}_1y^1、y^2\hat{y}_2y^2和y^3\hat{y}_3y^3别离为0.1、0.8和0.1,那么咱们预测的类别是2,在咱们的例子中代表“鸡”。 咱们能够看出对于所有的jjj总有0≤y^j≤10 \leq \hat{y}_j \leq 10≤y^j≤1,因而,y^\hat{\mathbf{y}}y^能够视为一个正确的概率分布。softmax运算不会扭转未归一化的预测o\mathbf{o}o之间的程序,只会确定调配给每个类别的概率。 因而,在预测过程中,依然用下式来抉择最有可能的类别。

November 2, 2022 · 1 min · jiezi

关于程序员:一些有用的技巧帮助你开发-flutter

一些有用的技巧帮忙你开发 flutter 前言你好明天给你带来了些有用的倡议,让咱们开始吧。 注释1. ElevatedButton.styleFrom 疾速款式你是否厌倦了 container 里那些乏味的 decorations ,想要轻松实现这个漂亮的按钮别放心,我给你筹备了一些魔法明码。 示例代码 SizedBox( height: 45, width: 200, child: ElevatedButton( onPressed: () {}, style: ElevatedButton.styleFrom( elevation: 10, shape: const StadiumBorder()), child: const Center(child: Text('Elevated Button')), ),), 示例代码 SizedBox( height: 45, width: 60, child: ElevatedButton( onPressed: () {}, style: ElevatedButton.styleFrom( elevation: 10, shape: const CircleBorder()), child: const Center(child: Icon(Icons.add)), ),),2. TextInputAction.next 焦点切换你们都晓得“焦点节点”。这基本上是用来辨认 Flutter 的“焦点树”中特定的 TextField 这容许您在接下来的步骤中将焦点放在 TextField 上。但你晓得 Flutter 提供了一个神奇的一行代码同样..。 ...

November 2, 2022 · 2 min · jiezi

关于程序员:Flutter-Bloc-框架-实现-HTTP-JSON-通讯

Flutter Bloc 框架 实现 HTTP + JSON 通信 原文 https://medium.com/vijay-r/fl...前言在本文中,咱们将探讨如何应用 Bloc 模式进行 http 发帖申请。 注释依赖包https://pub.dev/packages/flut...https://pub.dev/packages/http成果 1 Creating states.咱们总共有 4 个状态在这个应用程序(初始,加载,加载和谬误状态)。 2 Creating Events咱们在这个应用程序(SendData ())中共有 1 个事件,用于公布申请。 3 Mapping events to states将事件映射到状态 一旦在 UI 中按下搜寻按钮触发了“ SendData”事件,咱们就会收回“ Homepageloading”状态,这个状态会继续 3 秒钟,而后咱们会调用一个办法(fetchDetails ()) ,这个办法是独自写在存储库文件夹中的。 在存储库文件夹中编写的 API 调用(fetchDetails ())如下所示, 为这个应用程序创立的 Dart 模型类如下所示, 4. Building up UI.建设用户界面。 就是这样 代码 https://github.com/vijayinyou... 结语感激, 如果本文对你有帮忙,请转发让更多的敌人浏览。 © 猫哥 微信 ducafecathttps://wiki.ducafecat.techhttps://video.ducafecat.tech本文由mdnice多平台公布

November 2, 2022 · 1 min · jiezi

关于程序员:别以为面试完就完事了大厂HR告诉你这件事不做就亏大了

如何筹备、如何面试,咱们谈得很多。但在面试后该做些什么,反而会被大家所疏忽。在有面试机会之前,咱们要踊跃筹备,而在面试之后的复盘总结,则是为咱们下一次面试胜利添了砖加了瓦。有很多求职者得不到心仪的机会,问题可能不在面试环节,而是面试后所做的复盘工作还不到位。 面试后及时复盘及时总结,才是拿offer的要害利器。明天为大家举荐一个超高效的面试复盘八步法,事实证明,屡次这样复盘,你的面试成功率将高达90%。 大厂面试复盘八步法 1、回顾指标 回顾指标是什么?咱们面试的指标很简略,就是要面试通过,那咱们面试通过的目标是为了什么呢?当然是为了拿到一个更好的offer,有一个更好的倒退机会。 2、比照后果 当实现面试后,咱们要去进行后果的比照,后果的比照次要是针对于咱们在面试过程当中好的和不好的中央去进行剖析,看看咱们表述过程中到底出了什么问题,而没有达成最开始的目标。 3、叙述过程 咱们在比照后果的过程肯定是个陈说过程,咱们要去还原面试现场,看一看到底是哪些问题没有提前准备好,哪些问题可能是咱们这一次面试体现比拟好,把这些内容全副陈说进去,并一一记录下来,以备下一次的应用。 4、分析自我 叙述过程并且残缺记录下来,目标是要进行自我剖析,看一下胜利有没有运气的成分,失败的话到底是本人哪些地方没有做好,是面试的办法没有利用好,还是面试前的筹备不够充沛,或者技术下面还有哪些地方须要补足。 5、分享交换 记录整个面试过程,进行自我剖析,最终咱们要输入成文章再分享进来。为什么要分享呢?很多同学碍于面子或者工作多年的教训不违心去做分享,而后总执拗于本人的逻辑里边,孰不知可能你在一条不是那么正确的路上越走越远了。 咱们都晓得battmd这种公司,它在招校招生的时候都是看C9的,甚至于一部分985大学的同学都因为学历不过关而被淘汰。但那一年的校招,我却亲眼看到一个一般二本的姑娘,简直拿了所有大厂的offer,这点让我十分意外,所以在hr面试环节的时候,我就和她交换,问她是如何拿大厂offer的。 她说她在理解了校招的状况下,发现自己既没有学历劣势,也没有实习劣势,在什么都没有的状况下,她只能笨鸟先飞,她更早于其他同学在各大校招网站和论坛下面搜寻每一家公司面试问题,口试问题,把这些问题全副整顿后本人从头到尾做了一遍,之后她又把本人做了这些问题后得进去的一些办法梳理成文章,在应届生网下面做了分享,没想到这个文章引起了十分大的反应。很多同学都给她分享了本人在大厂的实习教训,也有一些往届生给这位同学分享本人之前的胜利面试教训,就是这份致力,让她从大家那里播种了十分多的有用信息,而后她融入到本人的面试过程当中。在面试过程中她不卑不亢,有理有据地表述本人的长处劣势,以一个坦诚学习的态度跟面试官进行沟通,从而取得了简直battmd所有公司的offer。 整顿信息梳理逻辑再进行文章的撰写,每一步都须要破费大量的工夫和精力,这自身就是十分难的,然而分享和交换对你来说会是一个自我学习和复盘的过程,同时也能集思广益,收集到大家帮你提供的更多信息。 6、学习心得 最初咱们要去看一下,通过咱们的分享交换以及整个面试的过程体验到底有哪些心得,而这些心得可能恰好就是咱们拿到下一个offer的必备条件。 7、校准指标 咱们的分享交换和学习心得最终是用来校准指标的,可能你的教训或者善于的本就不是大厂以后所须要的能力模型,但并不等于你不优良,只是你们不匹配罢了。但也不要灰心,咱们在倒退中的企业和守业型公司可能会拿到比大厂更多更好的资源,因为人才密度的不同,你可能还会有更大的倒退空间和机会。当你胜利的做了一个大我的项目的时候,可能就变成了大厂趋之若鹜的人才。 8、行动计划 咱们校准了本人的指标之后,更重要的是为本人下一步的口头做好筹备。 复盘八步法其实是一个闭环的逻辑,每一个细节的环节咱们都要做到十分认真,能力把整个面试做的越来越得心应手。不仅是面试,复盘八步法也能够无效的利用到你的工作场景中,无论是对于我的项目复盘,还是率领团队一起去做复盘,都十分无效!

November 2, 2022 · 1 min · jiezi

关于程序员:程序员想要快速晋升应如何平衡技术实力和综合实力

职场降职,作为程序员,要如何均衡技术实力和综合实力呢? 咱们先来说技术实力,晋升它是有技巧的,有迹可循的。许多同学到了P7、P8就感觉曾经到了职业瓶颈,感觉很难冲破,但从我的视角来说,你要思考的是你是否冲破现有的思维,是否具备解决问题的思路,这才是最重要的。技术这个层面,只有你可能沉下心来,虚浮地一步步往前走,冲破技术瓶颈还是非常容易的。 再来说综合实力。综合实力对于程序员的降职是很重要的,比如说当初让你进行降职问难,你要如何能力把本人很好的展示进去。 对于这个问题,上面四点大家肯定要牢牢把握。 第一,这个事件如果不是你做,是其他人做,你的劣势是什么?第二,这个事件如果不是你的团队做,是其余团队做,你们团队的劣势是什么?第三,这个事件如果不是你们公司做,是其余公司做的话,你们公司的劣势是什么?第四,这个事件如果不做,你的损失是什么? 这四个问题对应的别离是你的价值,你团队的价值,你公司的价值和这个事儿的价值。 对于加入降职问难的同学,首先你要答复出你做的这个事件的价值,然而事件的价值呢,要提纲挈领,简略介绍一下,给评委一个输出,通知他你做的事件是什么,占的篇幅不要太多。 而后去讲你本人的价值,你在这个我的项目里你做到了什么,你是怎么想的,你解决了哪些特定技术场景下的特定技术难点。 如果是带团队的同学,就要多答复一些了,比方这次你的团队做的是这个事件,如果下次换一个事件来做,你的团队还能不能行?有没有相干的教训积淀,有没有团队同学相干的技能储备,可不可以复用?

November 1, 2022 · 1 min · jiezi

关于程序员:Flutter-焦点管理-FocusScope-组件

Flutter 焦点治理 FocusScope 组件 前言更改用户交互中的文本字段色彩。 预览 当抉择一个文本字段并承受输出时,它被称为具备“焦点”通常,用户通过点击将焦点转移到文本字段,开发人员通过应用本菜谱中形容的工具以编程形式将焦点转移到文本字段。 治理焦点是创立具备直观流程的表单的根本工具。例如,假如您有一个带有文本字段的搜寻屏幕。当用户导航到搜寻屏幕时,能够将焦点设置为搜索词的文本字段。这容许用户在屏幕可见时立刻开始键入,而无需手动点击文本字段。 注释1. Focus Widget 组件一个 Widget ,它治理一个 FocusNode,以容许将键盘焦点赋予此 Widget 及其后辈。 https://api.flutter.dev/flutt... 包裹 TextFormField 与 Focus Widget 2. Builder Widget 组件一个无状态实用工具 widget ,其构建办法应用其构建器回调来创立 widget 的子级。 https://api.flutter.dev/flutt... https://api.flutter.dev/flutt... 它有两个变量。 FocusNode: 可由有状态 widget 用于获取键盘焦点和解决键盘事件的对象。 hasFocus: 此节点是否具备输出焦点。 创立要在其中更改色彩的三元运算符。 3. FocusScope Widget 组件FocusScope 相似于 Focus,但也作为其后辈的作用域,将焦点遍历限度为作用域控件。例如,在推送路由时会主动创立一个新的 FocusScope,以避免焦点遍历挪动到前一个路由中的控件。 用 FocusScope widget 包装整个列 column (文本表单字段所在的地位)。 实现了! 如果本文对你有帮忙,请转发让更多的敌人浏览。© 猫哥 微信 ducafecathttps://wiki.ducafecat.techhttps://video.ducafecat.tech本文由mdnice多平台公布

November 1, 2022 · 1 min · jiezi

关于程序员:15-个面向程序员的-Github-宝藏仓库

15 个面向程序员的 Github 宝藏仓库 前言这篇文章对于所有的前端、后端和软件工程师来说是一个宝藏。 注释1 - CS Video Courses 课程Computer Science courses with video lectures 计算机科学视频 https://github.com/Developer-... 2 软件开发根底软件开发人员学习如何从头开始构建应用程序的编程教程列表。 这些教程分为不同的次要编程语言。教程可能波及多种技术和语言。 https://github.com/practical-... 3 - 算法以所有语言为初学者实现的算法和数据结构,遵循最佳实际 https://github.com/TheAlgorithms 4 - 面试手册为繁忙的软件工程师策动编码面试筹备 https://github.com/yangshun/t... 5 Javascript 算法用 JavaScript 实现的算法和数据结构,包含解释和进一步浏览的链接。 https://github.com/trekhleb/j... 6 - 收费编程书籍收费提供所有语言的编程书籍回购链接 https://github.com/EbookFound... 7 - Javascript 面试问题1000 个 JavaScript 面试问答一览表 https://github.com/sudheerj/j... 8 - Reactjs 面试问题500 个问答整顿 https://github.com/sudheerj/r... 9 - Vuejs 面试问题300 个问答整顿 https://github.com/sudheerj/v... 10 Angular 面试问题300 个问答整顿 https://github.com/sudheerj/a... 11 - Node js 面试问题问答整顿 ...

November 1, 2022 · 1 min · jiezi

关于程序员:Python编程入门环境搭建

作为一门跨平台的高级编程语言,Python能够运行在简直所有支流的操作系统中。这也意味着,只有咱们在本机电脑装置配置完Python环境后,便能够轻松愉快的学习Python语言了。 这是一门值得大部分人学习的计算机编程语言常识,对于Python的介绍可详见咱们第一篇文章的解说。本文着重介绍如何在Windows、Linux以及Mac三大支流的操作系统中装置并配置Python环境。 上面先为大家介绍几个罕用的Python学习网站: Python官网:https://www.python.org/ Python文档:https://www.python.org/doc/ Python社区:https://www.python.org/commun... Windows零碎1. Python环境查看 首先,同时按下Win+R键,敲入cmd指令,进入控制台。其次,输出python并回车,若报错即阐明以后零碎未装置。2. Python环境下载 同时按下Win+I键后点击零碎 → 点击对于 → 查看以后操作系统处理器。<,,> 进入官网https://www.python.org/downloads/windows/下载对应Python版本 Python3.11.0-64bit-Windows安装包下载https://www.python.org/ftp/python/3.11.0/python-3.11.0-amd64.exe下载完依据以下步骤装置<,,> 3. Python环境测试 同步骤1,运行cmd,敲入Python指令,输出以下命令,若终端失常打印输出hello world!即示意装置胜利。 print('hello world!')若零碎提醒Python不是外部或外部命令,可先查看是否有正确增加零碎环境变量。点击我的电脑属性,进入零碎面板;找到右上角的高级零碎设置;而后抉择右下角的环境变量;最初将Python的exe所在的门路增加Path的门路中即可。 留神此处替换成本人对应的装置门路。<,,,,> Linux零碎# 筹备环境yum -y install gcc bzip2-devel sqlite-devel openssl-devel readline-devel xz-devel xz-devel tk-devel gdbm-devel libffi-devel wget# 下载 【若下载速度过慢,可间接登录百度网盘下载完放到指定地位即可】wget https://www.python.org/ftp/python/3.11.0/Python-3.11.0.tgz# 解压tar -zxvf Python-3.11.0.tgz && cd Python-3.11.0# 编译./configure --prefix=/usr/local/python3 --with-ssl# 装置make && make install# 新建mkdir -p /usr/local/python3# 批改ln -s /usr/local/python3/bin/python3.11 /usr/bin/python3ln -s /usr/local/python3/bin/pip3# 更新pip install --upgrade pip百度网盘:https://pan.baidu.com/s/1G5dH... 提取码:e3vcMac零碎若零碎装置了Homebrew,可间接进入终端,输出brew install python3即可。若未设置,可间接登录上述下载页面,下载相应的安装包点击装置即可。 ...

October 31, 2022 · 1 min · jiezi

关于程序员:Solr-811入门教程1启动关闭

Solr 8.11入门教程(1)启动敞开概述介绍Solr是一个高性能,采纳Java开发,基于Lucene的全文搜寻服务器。同时对其进行了扩大,提供了比Lucene更为丰盛的查询语言,同时实现了可配置、可扩大并对查问性能进行了优化,并且提供了一个欠缺的性能治理界面,是一款十分优良的全文搜索引擎。 Solr 9.0.0开始最低要求java 11。 官网https://solr.apache.org/ 装置下载官网下载,进入服务器要寄存下载文件的目录,此处以software目录为例 ~$ cd software1、抉择对应的版本下载 ~$ wget https://dlcdn.apache.org/lucene/solr/8.11.2/solr-8.11.2.zip2、解压 ~$ unzip solr-8.11.2.zip启动敞开到solr的bin目录下 # 启动:~$ ./solr start# 敞开:~$ ./solr stop -all(进行所有solr) 或者 solr stop -p 端口号(进行某个端口的solr)或者间接配置到环境变量中(/etc/profile的path中追加solr/bin)能够不加后面的./ 次要不要配置SOLR_HOME环境变量能够改成其余名字,否则启动时会在SOLR_HOME目录下寻找solr.xml配置文件,不存在则报错,如: Solr home directory /home/ubuntu/software/solr-8.11.2 must contain a solr.xml file!拜访地址启动实现后,拜访 127.0.0.1:8983 即可。主动调整到http://192.168.1.246:9983/solr, 批改我的项目名默认我的项目名为solr,如果不想应用solr为我的项目名,能够批改solr-8.11.2/server/contexts/solr-jetty-context.xml 批改为本人喜爱的名称。 配置java内存 java内存默认512M,可能不够用,能够批改java内存设置,linux下批改配置文件bin/solr.in.sh,windows下批改配置文件bin/solr.in.cmd即可 SOLR_JAVA_MEM="-Xms512m -Xmx10240m" #依据理论状况配置,默认此行正文掉了,39行端口批改默认端口8983,不倡议应用容易被攻打,倡议进行批改,linux下批改配置文件bin/solr.in.sh,windows下批改配置文件bin/solr.in.cmd即可 SOLR_PORT=9983 #默认正文掉也能够在solr-8.11.2/server/etc/jetty-http.xml 和 solr-8.11.2/server/etc/jetty-https.xml别离对应http和https协定。 拜访日志默认在solr-xx/server/logs目录下,能够批改solr-xx/server/resources/log4j2.xml文件自定义 拜访限度不倡议solr间接裸露到公网上,即便有明码,还是倡议减少白名单 linux下批改配置文件bin/solr.in.sh,windows下批改配置文件bin/solr.in.cmd。 # Sets the port Solr binds to, default is 8983SOLR_PORT=9983# Restrict access to solr by IP address.# Specify a comma-separated list of addresses or networks, for example:# 127.0.0.1, 192.168.0.0/24, [::1], [2000:123:4:5::]/64# 白名单SOLR_IP_WHITELIST=127.0.0.1,192.168.1.0/24,# Block access to solr from specific IP addresses.# Specify a comma-separated list of addresses or networks, for example:# 127.0.0.1, 192.168.0.0/24, [::1], [2000:123:4:5::]/64# 黑名单#SOLR_IP_BLACKLIST=时区批改查看日志时会发现,solr中日志的工夫与实在时间差了8的小时,比方当初是10点,而日志显示的是02点,这是solr因为时区设置问题,导致要么日志工夫不对(早8小时)要么失常入索引后的date类型的工夫会缩小8小时(调整时区后)。linux下批改配置文件bin/solr.in.sh,windows下批改配置文件bin/solr.in.cmd即可linux: ...

October 31, 2022 · 1 min · jiezi

关于程序员:新闻贴-开务数据库受邀亮相中国-1024-程序员节

2022 年 10 月 24 日至 25 日,开务数据库应邀参加长沙·中国 1024 程序员节线上博览会并在数据库技术及利用实际论坛发表主题演讲。长沙·中国 1024 程序员节是由中国顶尖的 IT 社区 CSDN、长沙市政府等机构联结主办,湖南省工业和信息化厅、湖南湘江新区治理委员会领导的技术盛会。每届大会邀请相干政府领导、顶尖技术专家、企业代表等,与开发者对话分享,促成政产学研界的联动,促成技术先进、利用凋敝的产业生态。大会年均线下观众 2000+,线上观众超过百万,流传超 10 亿,是程序员、开发者畛域的年度盛会。 开务数据库首席计划架构师李月飞在会上发表题为《开务数据库及其在 IoT 场景下的技术实际》的演讲。次要展现了分布式数据库、时序数据库、数据服务平台(KDP)以及开务在 IoT 方面的技术实际,展现分享内容受到了观众的极大关注与互动。开务数据服务平台(KDP)是以开务数据库为外围建设的云-边-端一体化数据服务平台,为工业互联网、数字能源、IoT 行业提供从数据产生、采集、汇聚到数据分析、利用、归档的全生命周期的数据服务。 将来,开务数据库将持续深耕数据服务的疾速倒退重要畛域,积极响应国家政策,鼎力推动数据库及数据服务产品的翻新研发与利用实际。

October 31, 2022 · 1 min · jiezi

关于程序员:UEditorPlus-v260发布-编辑器草稿功能操作体验优化

UEditor是由百度开发的所见即所得的开源富文本编辑器,基于MIT开源协定,该富文本编辑器帮忙不少网站开发者解决富文本编辑器的难点。 UEditorPlus 是有 ModStart 团队基于 UEditor 二次开发的富文本编辑器,次要做了款式的定制,更合乎古代浏览器的审美。 在开发过程中解决了局部应用上的Bug,期待更多搭档一期退出保护。 v2.6.0亮点介绍本次减少了草稿主动保留性能,在原有根底性能上新减少了一些配置项。 autoSaveEnable 主动保留,开启主动保留,默认为 true autoSaveRestore 主动保留,主动复原,默认为 false autoSaveKey 主动保留键,多个编辑器能够应用不同的键,默认为 null 版本介绍UEditorPlus v2.6.0 曾经公布。 新增:主动保留性能,新增 autoSaveEnable, autoSaveRestore, autoSaveKey 配置新增:从草稿箱复原到浏览器 auto_save_restore 命令优化:重构 localStorage 局部代码,适配古代浏览器优化:重构残缺演示 Demo 性能局部,所有测试性能重构修复:图片高度过高时操作浮窗显示问题对于Bug反馈与保护家喻户晓 UEditor 应用的人数多,目前曾经累积了N个Bug,开源不易须要大家独特保护对于在理论应用中遇到的问题,如果急需解决举荐应用 悬赏Issue ,这样让更多有能力的开发者有独特保护的能源在线演示https://open-demo.modstart.com/ueditor-plus/_examples/开源地址国内:https://gitee.com/modstart-li...国外:https://github.com/modstart-lib/ueditor-plus

October 31, 2022 · 1 min · jiezi

关于程序员:在中国程序员能干一辈子吗

本文首发自「慕课网」,想理解更多IT干货内容,程序员圈内热闻,欢送关注! 啥子?程序员都卷到二三线了??? 家喻户晓,互联网是卷中卷,许多大龄程序员在北上广卷的发懵,卷不过年轻人,只好退而求其次,抉择回到二三线城市工作。本想生存稳固了,也不用那么卷了,然而万万没想到,回去的生存让程序员更是大跌眼镜:二三线城市的程序员不仅卷,还卷的那么“朴实无华”... 据相干报告显示,互联网人才来到北上广后扎根最多的城市是杭州,那目前杭州的待业局势是怎么的呢?在杭州买房容易吗? 最近DT财经比拟了局部城市均匀房价和人均可摆布支出,发现普通人在杭州,一年不吃不喝也只能购买3.21平方米的房子。除去北上广深外,这个难度仅次于厦门,排名全国第5。而且,依据七普数据显示,杭州市文化学历在大学水平的人口占比达到29.32%,甚至高于深圳和广州,低于北京和上海。杭州的高学历人才很多,那与之匹配的就业机会够用吗?可怜的是,貌似不太够。数据显示,杭州工作经验不足1年的小白程序员,竞争难度和深圳一样,每60集体竞争一个岗位,仅次于广州。在杭州,如果是一名有1-3年教训的程序员,寻找工作时会面临14个竞争对手! 所以,能够毫不夸大的说,不仅是北上广,全国的程序员都躺在沙滩上卷呢,一不小心可就被埋在沙滩下了...另一个被程序员惦记的城市是四川成都,都说“少不入川老不出蜀”,那么问题来了,成都的程序员是不是就能每天泡泡茶,采采耳,逛一逛公园呢?别做梦了!除了卷,成都的程序员还有一道额定的关卡,热。特地是最近,全国继续大范畴的低温,四川的同学,先限电后断水,真的是太太太难了。8月22日,四川成都的一家写字楼,被断电后办公室太热待不住,某公司索性安顿外围技术人员到网吧下班,于是就有了一群员工在网吧里码代码的奇幻场景。网吧里一众网民都惊呆了。图片起源:视频截图 看到没有,没电,咱们也能卷!无论是在大城市还是二三线城市,如果势必要卷,那程序员到底能不能干一辈子呢?对于这个疑难,许多行内的小伙伴都有本人的了解和认识。 @吃货小将 程序员没方法干一辈子的,这就是在吃青春饭。程序员这份职业注定了是一份高强度的工作,技术更新迭代快,无论是身体素质还是学习能力,对程序员本身都有着十分高的要求,当程序员在肯定年纪里还没达到肯定的层级,势必会被职场合淘汰。 @白白白 这个世界上原本就不存在任何能够干一辈子的职业,比拟“铁”的饭碗可能是公务员、老师、医生类的,但目前也不能保障这些工作就能够干一辈子。对于程序员来说,年龄不是最大的问题,是精力有限学不动的问题,学不动怎么办,只能依照本人的专长,固定专一一个职业方向,走技术、走治理,或者是业务转型,或者是本人守业。 @车厘子叔叔 不晓得你们,然而我酷爱编程,我必定无能上一辈子的。都说程序员到了35岁,脑力跟不上,膂力跟不上,就很难有所倒退了,其实最基本的起因是没有激情,眼睛里没有光了。如果对编程能始终放弃激情,那么程序员必定会做一辈子的。 @Aaron我爱编程这个工作,并且我必定我会干上一辈子的。不少人认为程序员最多干到35岁,年龄是程序员迈不过来的一道坎,妥妥的青春饭。很多互联网企业也会认为写程序是年轻人的事件,到了肯定岁数,预计没什么人再当程序员了。每个程序员都会在35岁遇到职业瓶颈,一些人抉择职业变道,当然也有人保持了下来,并拿到了比拟现实的高薪。我倒是感觉年纪大了其实不是问题,最间接的问题是精力跟不上了,毕竟熬夜真的吃不消了。 公说公有理婆说婆有理,程序员到底能不能做一辈子?其实,问题的关键在于你是否足够动摇。正如网友@车厘子叔叔 说的那样,无论做哪个行业,首先肯定要有极其强烈的趣味,只有这样能力放弃继续学习的能力。要一直的进步本身的职场竞争力,冲破职场瓶颈,让本人退职场上变得不可代替。胜利的过程就如同是跑马拉松,过往的积攒都是过眼云烟,更重要的是能不能保持到起点。加油吧!愿咱们都有美妙的将来! 欢送关注「慕课网」,发现更多IT圈优质内容,分享干货常识,帮忙你成为更好的程序员!

October 31, 2022 · 1 min · jiezi

关于程序员:5-why-分析法一种用于归纳抽象出解决方案的好方法

最近在看了《微信背地的产品观 - 张小龙手抄版》,其中有段话如下: 用户需要是零散的,解决方案是演绎形象的过程 那如何演绎形象呢?是否有肯定的实际方法论呢?通过一轮探讨和学习,有这些答案: 5 Whys 分析法U 型思考法等等二、5 Whys 分析法5 Whys 法,最后由丰田佐吉开发,并在丰田汽车公司的制作办法演变过程中被应用。它是解决问题的一个重要组成部分,也作为丰田生产零碎入门培训的一部分 5 Whys 法的定义,是一种解决问题的办法,摸索特定问题的潜在因果关系 其外围过程就是一直的诘问。通常状况下,5 次迭代诘问足以揭示根本原因。但在某些状况下,可能须要更多或更少的诘问,这取决于问题基本的深度 5 Whys 法,有几个关键点 留神因果关系的逻辑,不能因果倒置起因依赖于事实和数据,但数据经常不是惟一根据起因尽可能评估事(比方产品性能、比方某某流程),而不是人所以如何解决用户需要,按 5 Whys 法具体演绎总结的过程,能够按如图所示进行: 1、针对一个需要(外表问题),提出第一个为什么 2、寻找起因后,会呈现多个可能的起因 3、筛选实在的起因 4、迭代并直至找出根因,而后输入需要对应的解决方案 三、U 型思考法跟 5 Whys 分析法,有殊途同归之妙的 U 型思考法,我记得沈拓老师有个课程讲的就是这个,在这里我也小结分享下 U 型思考法是一个找准问题和看透实质的思维模型。其外围就是从表象问题一直的深挖其本质,再基于实质问题,再找出解决方案。次要分为 4 个步骤: 1、定义外围问题 2、发现实质问题 3、找到实质解决方案 4、执行并解决问题 这个通常是突破了见招拆招的直线式思维形式,尤其在简单问题中,用 U 型思考法,能无效演绎并形象出解决方案 所以如何解决用户需要,按 U 型思考法得留神几点: 基于产品事实,提出用户需要基于用户需要,提出实质解释基于实质解释,提出可能性解决方案执行当下最合适的解决方案,最初解决用户需要四、小结用户需要尽管零散,但很重要。只有透过实质,去洞察用户感触与诉求,能力助力业务增长 能够通过本文分享的这两种形式进行演绎形象用户需要,这样能力做出更好的产品,最终用户才会为产品买单 出处:公号「SaaS 守业之路」,一位 SaaS 守业路上的普通人,喜爱力不从心的分享一些接地气的心得和播种

October 31, 2022 · 1 min · jiezi

关于程序员:Flutter-开发中重要的-5-件事情

Flutter 开发中重要的 5 件事件 原文 https://medium.com/@kaushikid...前言你好,敌人们!欢送回来... 明天我要分享一些咱们不应该在 flutter 中做的事件 注释01. 将办法转换成组件When we have a large layout, then what we usually do is splitting using methods for each widget. Like 当咱们有一个大的布局,而后咱们通常做的是宰割应用办法为每个 widget import 'package:flutter/material.dart';class MyHomePage extends StatelessWidget { const MyHomePage({Key? key}) : super(key: key); // first methodWidget _buildHeaderWidget(context) { return const Icon( Icons.account_box, size: 200, color: Colors.pink, ); } //second methodWidget _buildMainWidget(BuildContext context) { return Expanded( child: Card( elevation: 10, color: Colors.grey[300], child: const Center( child: Text( 'Hello Flutter', ), ), ), ); }// third methodWidget _buildFooterWidget() { return const Card( elevation: 10, child: Padding( padding: EdgeInsets.all(20.0), child: Text('This is the footer '), ), ); } @overrideWidget build(BuildContext context) { return Scaffold( body: Padding( padding: const EdgeInsets.all(20.0), child: Column( mainAxisSize: MainAxisSize.min, children: [ const SizedBox( height: 30, ), _buildHeaderWidget(context), _buildMainWidget(context), const SizedBox( height: 30, ), _buildFooterWidget(), ], ), ), ); }} ...

October 30, 2022 · 3 min · jiezi

关于程序员:如何在你的-Flutter-中使用-input-chip-标签组件

lang: zh-CNtitle: 如何在你的 Flutter 中应用 input chip 标签组件 description: 译文如何在你的 Flutter 中应用 input chip 标签组件 这里有一些领有属性的 chip,其中之一就是 input chip。input chip 通常用于以激进的构造解决客户端输出或向客户端提供想法。除了 label 和 avtar 之外,input chip 还能够有一个删除图标。在 Flutter 中,您能够利用 InputChip widget 制作这种 chip。 原文 https://medium.flutterdevs.co...前言InputChip 是一个 material widget ,它以激进的构造解决令人难以置信的数据片段。Flutter 提供了一个名为 InputChip 的 widget ,它容许咱们在应用程序中增加一个 input chip。 默认状况下,input chip 是禁用的。咱们能够通过设置为“抉择”来加强它的能力。咱们能够给出一个标签,以及它的疏导和尾随符号。不同品种的 chip 有 Chip、 ChoiceChip、 ActionChip 和 FilterChip。 https://api.flutter.dev/flutt... 演示: 这个演示视频显示了如何在 Flutter 中应用 input chip,并显示了 input chip 将如何在 Flutter 应用程序中工作。咱们将显示一个用户按下 chip,而后 chip 将被选中,并且用户将删除 chip。它会显示在你们的设施上。 ...

October 30, 2022 · 3 min · jiezi