- 博客(787)
- 收藏
- 关注
翻译 远程教学平台_关于远程教学
我还是学生的时候就开始在高等教育机构任教。 那是二十多年前了。 从那以后我再也没有停止过。 我曾在不同类型的组织( 即工程学校,大学和应用科学学校)以及两个不同的国家(法国和瑞士)任教。 在所有这些工作中,一个共同的特点是需要现场授课。 实际上,我的现任雇主在其法规中明确指出了这一点。 或者完全准确地说,虽然实际上允许您远程授课,但只支付现场时间。 因为我经常旅行,所以这对我来说是个大问题...
2020-07-10 16:28:54 783
翻译 io流 节点流 处理流_流处理简介
如果说“软件正在吞噬世界”,那么“数据就是新的石油”。 那些能够最好地管理海量数据的人将脱颖而出。 精炼这种油的最先进方法是物流加工 。 在这篇文章中,我想描述什么是流处理,以及为什么在当今时代必须这样做。 这是第1 周在后流处理重点series.Other职位包括: 流处理简介 (本文) 流处理以计算近似值 流处理:源和汇 过去的好时光 将数据从一个位置移...
2020-07-10 16:18:54 580
翻译 Java流和状态
使用Java 8流,似乎函数式编程已成功。 万岁无状态和递归! 现实有些微妙:与软件编程一样, 它取决于 。 我相信工具带中的工具越多越好。 当您只有一把锤子时,一切看起来都像钉子。 在函数式编程中,每个函数都必须是纯函数:输出仅取决于输入,并且没有副作用。 因此,没有使用Java方法来创建无限流(很多吗?)。 以Stream.generate()为例。 我只看到两种用法: St...
2020-07-10 16:08:54 566
翻译 kotlin 三元运算符_Kotlin运算符
考虑两种类型X和Y ,以及定义为的函数f : class Xclass Yval f = { _ : X -> Y () } (1) 1个 使用Kotlin 1.3,可以命名未使用的参数_ ,以明确告诉它被忽略 以下代码段声明了一个类似于f的函数。 然后,使用invoke()函数使用类型为X的参数执行该命令: fun f ( x : X ) = Y (...
2020-07-10 15:58:54 3321
翻译 调试代码遗留_遗留代码中的重复数据删除技巧
您可能需要对重复项列表进行重复数据删除...来自旧版代码。 该类-我们称它为LegacyObject已经具有equals()和hashCode() 。 由于担心破坏正在运行的代码,因此无法更改实现。 而且不幸的是,Java API没有提供distinctBy()功能。 在这种情况下,一个便宜的技巧是用所需的实现围绕LegacyObject创建一个包装器类: public class Le...
2020-07-10 15:48:54 191
翻译 java制作字幕文件_制作Java策略文件,实用指南
在我以前的一篇文章中 ,我描述了如何创建一个自定义策略文件来保护一个人的应用程序。 该过程是手动的和增量的。 因此,它很费力的时间-因此并不实用。 我在一些会议上介绍了该过程,反馈之一是它必须是自动化的。 当然,如果没有自动化,除了琐碎的应用程序之外,没有人会写这样的策略文件。 这是JVM安全重点series.Other职位包括4 个职位: Java安全管理器:为什么以及如何执行...
2020-07-10 15:38:54 523
翻译 不要git push
我承认标题有点挑衅。 当然,您需要推动更改。 我可能应该将其重命名为“不要只是git push”或“不要只是git push”。 但是我很喜欢clickbait标题。 我的意思是,您永远不要键入: git push 这引起了一个问题,为什么? 回答这个问题是这篇文章的主题。 回归本源 如果您曾经与Git一起工作过,您就会知道git push接受remote和branch作为...
2020-07-10 15:18:54 184
翻译 数据分析人才短缺_关于开发人员短缺
谁不知道开发人员短缺? 我的意思是,如果您进入软件行业,那么每个人都会不时地告诉您-尤其是在招聘方面。 为了解决这个问题,公司提出了创造性的解决方案-有些公司赞助教育计划,甚至创建自己的计划。 但是,我认为这不是正确的答案。 当然,毫无疑问,缺少优秀的开发人员。 但是,对于每个行业都是如此:缺少优秀的水管工,优秀的木匠,优秀的汽车修理工等。那么,为什么在IT领域存在如此困扰? 我提出了几个...
2020-07-10 15:08:54 424
翻译 java序列化_Java序列化
在我最近的一门课程中,我们讨论了Java 5注释。 我告诉我的学生,在那之前,人们不得不改用标记界面:没有任何方法的界面。 然后,我以Serializable接口为例。 我开始解释它,然后意识到我将需要很多时间来完全涵盖它。 这篇文章是对此的尝试。 序列化是将现有内存中Java对象转换为字节流的过程。 然后可以通过网络传输该流,或将其写入文件。 用例) 我没有证据来证明这一点,...
2020-07-10 14:58:54 119
翻译 git清理_Git清理
在我的日常工作以及此博客中,我经常使用Git。 使用它时,我经常在推送之前将其本地化,以获取清晰易读的历史记录。 样本工作流程 对于我的博客,分支模型如下所示: o---o---o---o master \ \---o---o feature/newposts 主 不出所料,此分支是生产站点。 功能/新闻 该分...
2020-07-10 14:48:54 803
翻译 clojure_学习Clojure:动态调度
这是在学习Clojure的焦点series.Other职位包括4 个职位: 解码Clojure代码,让您不知所措 学习Clojure:应对动态打字 学习Clojure:arrow和doto宏 学习Clojure:动态调度 (本篇文章) 学习Clojure:依赖类型和基于合同的编程 学习Clojure:与Java流进行比较 关于学习Clojure的反馈:与Java流...
2020-07-10 14:38:54 339
翻译 迪杰斯卡拉算法_斯卡拉vsKotlin:多重继承与钻石问题
这是Scala与Kotlin焦点系列文章中的第4 个帖子。其他帖子包括: 斯卡拉vsKotlin:皮条客我的图书馆 Scala vs Kotlin:运算符重载 Scala vs Kotlin:内联和中缀 Scala vs Kotlin:多重继承与钻石问题 (本文) 继承与封装和多态性一起,是面向对象编程的基本宗旨之一。 除了简单继承外 ,还有多个继承 : 多重继承...
2020-07-10 14:28:54 201
翻译 clojure_学习Clojure:应对动态打字
我的新职位要求我熟悉Clojure语言 。 打算记录我在一系列帖子中学到的内容,以作为我的个人参考笔记。 作为副作用,我希望它对希望走同样道路的其他人也将是有益的。 考虑到我的大部分经验都来自OOP ,因此已经有大量出色的教程可供使用:因此,每篇文章都将专注于特定主题,该主题特定于Clojure。 这是在学习Clojure的焦点series.Other职位包括第2 个职位: 解码Cl...
2020-07-10 14:18:54 173
翻译 clojure 宏_学习Clojure:arrow和doto宏
对我来说,学习一门新语言就像下海:一次只脚趾。 这是在学习Clojure的焦点series.Other职位包括第三职位: 解码Clojure代码,让您不知所措 学习Clojure:应对动态打字 学习Clojure:arrow和doto宏 (本文) 学习Clojure:动态调度 学习Clojure:依赖类型和基于合同的编程 学习Clojure:与Java流进行比较 ...
2020-07-10 14:08:54 313
翻译 clojure 编辑器_学习Clojure:换能器
本周,主题是换能器。 但是在涉足该主题之前,我们首先需要更多地讨论减速器。 这是在学习Clojure的焦点series.Other职位包括8 个职位: 解码Clojure代码,让您不知所措 学习Clojure:应对动态打字 学习Clojure:arrow和doto宏 学习Clojure:动态调度 学习Clojure:依赖类型和基于合同的编程 学习Clojure:与...
2020-07-10 13:58:54 227
翻译 eratosthenes_Eratosthenes的筛子
最近,我偶然发现一个Reddit线程指向一个存储库 ,该存储库比较了不同语言的Eratosthenes筛网实现的性能。 简而言之,Sieve是一种(古老的)算法,可以找到所有达到指定极限的素数。 至少可以说,结果令人着迷: 语言 性能(秒) C 0.501 clang-fblocks -o prime_c prime.ctime ./prime...
2020-07-10 13:48:54 343
翻译 取决于数学符号_这取决于
在行业中,有一个普遍的笑话。 无论您问顾问什么问题,答案都是: 这取决于。 这个笑话是为了强调顾问永远不会直接回答一个简单的问题,因为他们不想承担任何责任。 当我了解面对这种情况时业务的挫败感时,我想写一下篱笆的另一面。 让我们扩大范围:在IT行业中,可能涉及的更多是每个开发人员,而不仅仅是顾问。 但是,为什么这个答案如此普遍? 出于一个单一的原因:如果问题(被问到的人认为很简单 ...
2020-07-10 13:38:54 840
翻译 ::$data数据流_流处理:源和汇
上周,我们研究了流处理如何帮助我们使用Hazelcast Jet来计算数学近似值 。 我们描述了Pipeline API,并提到它从源 “读取”并“写入”接收器 。 本周,我想详细介绍一下这些概念,Jet中可用的现成的接收器和源,以及在需要时如何创建自己的接收器和源。 这是在流处理重点series.Other职位包括第三职位: 流处理简介 流处理以计算近似值 流处理:源和接收...
2020-07-10 13:28:54 380
翻译 lambda代码_Lambda和清洁代码
作为软件开发人员,我们的行为像孩子一样。 当我们看到闪亮的新事物时,我们只需要与它们一起玩。 在某种程度上,这是正常的,可以接受的,并且总体上甚至有益于我们的工作。 当Java开始使用版本5提供注释时,朝着使用它们的方向迈出了一大步。 任何地方。 到处。 即使不是个好主意。 但是它是新的,因此必须是好的。 当然,当滥用某物时,就会有强烈的反对之心。 因此,即使使用注释可能有意义,某些开发人...
2020-07-10 13:18:54 151
翻译 求模糊矩阵合成运算的程序_合成的
JVM上运行着多种语言,从Java到Clojure和JRuby 。 它们都有不同的语法,但是它们都编译成相同的字节码真是太棒了。 JVM将它们全部结合在一起。 当然,它偏向Java,但是即使在Java中, 字节码中也发生了一些不可思议的事情。 最著名的把戏来自以下代码: public class Foo { static class Bar { private B...
2020-07-10 13:08:54 1324
翻译 默认Git选项
几年前,我开始与Git合作,老实说,要拿起它并不容易。 这是一个巨大的野兽,有几种方法可以驯服它。 在网络上,大多数考虑到这一点的文章都集中在创建命令快捷方式上。 总的来说,这就像:不用键入git pull --rebase ,而是创建一个gpr快捷方式! 我之前写过这样的文章 。 但是,我认为创建很多快捷方式并不会改善很多情况。 首先,不时减少一些按键操作,然后不会大大提高工作效率。...
2020-07-10 12:58:54 183
翻译 以太坊部署_从以太坊开始-部署和运行合同
在过去的几周中,我们设置了工具并编写了合同(并对其进行了测试)。 绝对是时候“真正”部署合同并运行它了。 这是第3 次后在开始复仇重点series.Other职位包括: 从以太坊开始-设置 以太坊开始-撰写合约 从以太坊开始-部署和运行合同 (本文) 从以太坊开始-智能合约 从以太坊开始-工业化 使用GUI 多亏以太坊钱包,部署和运行合同变得微不足道了。...
2020-07-10 12:38:54 1208
翻译 以太坊 智能合约_从以太坊开始-智能合约
面对现实吧。 对于智能合约,实现两个整数的加法不是很“智能”。 在本文中,我将尝试超越以前的琐碎示例,并提出一个简单但真实的用例。 这是4在开始复仇重点series.Other帖子后第包括: 从以太坊开始-设置 以太坊开始-撰写合约 从以太坊开始-部署和运行合同 从以太坊开始-智能合约 (本文) 从以太坊开始-工业化 例如,让我们考虑公投的商业领域。 全民...
2020-07-10 12:28:54 324
翻译 创造性地解决复杂问题_创造性地使用过滤器
我刚刚完成了该学期学生的作业评分。 我不时更改作业。 当前的是一家非常简化的电子商务商店。 主要功能围绕几个屏幕和购物车管理进行: 产品详细信息页面主要由产品详细信息组件组成。 可以通过单击“ 购物车”按钮将一种这样的产品添加到购物车中 产品列表页面汇总了两个产品详细信息组件。 可以通过单击购物车按钮为每个显示的产品添加一个 在结帐页面上,针对购物车中的每种产品: ...
2020-07-10 12:18:54 178
翻译 以太坊 --metrics_从以太坊开始-工业化
这是5在开始复仇重点series.Other帖子后第包括: 从以太坊开始-设置 以太坊开始-撰写合约 从以太坊开始-部署和运行合同 从以太坊开始-智能合约 从以太坊开始-工业化 (本文) 上周,我们终于开发出了一种合同,该合同以边际投票的形式提供了一定的价值。 但是,有一个巨大的问题:没有测试! 作为专业开发人员,这是不可接受的。 而且,没有简化绿地开发的框架,...
2020-07-10 11:58:54 411
翻译 clojure_解码Clojure代码,让您不知所措
最近,我写了一些有趣的功能Kotlin来解决FizzBuzz测试 。 我要求提供一些反馈,我收到的答案之一是Clojure : 在Clojure中,有一种经典的方式,即condp和mod。 我几年前看到的还有另一种使用循环的方式。 范围和2个周期将产生嘶嘶声和嗡嗡声,其余仅决定要打印的内容。 通过语法高亮显示->屏幕截图pic.twitter.com/wOPJD0BpG...
2020-07-10 11:38:54 255
翻译 java动态模型转换_Java中的动态转换
我是Baeldung博客的忠实粉丝。 他的最新文章之一是有关Java的转换。 不幸的是,我觉得它错过了一个重要点:动态转换。 由于那是(非常) 相对较新的,因此本文将尽力填补这一空白。 不要使用投射 第一件事是避免铸造应该相对容易。 使用多态 多态是不进行转换的好方法。 考虑以下代码: List animals = new ArrayList ();animals ....
2020-07-10 11:28:54 710
翻译 将Spring Boot应用程序迁移到Java 9-兼容性
随着Java 9的到来,关于如何迁移应用程序以使用模块系统的讨论越来越多。 不幸的是,大多数书面文章集中在简单的Hello world应用程序上。 或更糟糕的是,对于Spring应用程序,示例应用程序使用传统做法-例如XML。 这篇文章旨在通过为非平凡的现代Spring Boot应用程序提供逐步迁移指南来纠正这一问题。 选择这样做的示例应用程序是Spring Pet诊所 。 使用Java ...
2020-07-10 11:18:54 378
翻译 我的职业生涯规划_我职业生涯的新里程碑
两周前,我在一家新公司开始了一个全新的职位:我现在是提供云计算资源的Exoscale公司的Developer Advocate(或更准确地说,是“ Developer Relationships Manager” )。 这周没什么技术性的,但是关于我的很多。 如果您不是来杯茶的话,欢迎跳过。 如果您想进一步了解我,请继续阅读。 直到现在,我一直在担任整个职业的顾问。 在法国,开发...
2020-07-10 11:08:54 685
翻译 静态网页加一个静态的搜索框_在静态网站上搜索
当我将博客从WordPress移至Jekyll时,我遇到了让用户搜索其中内容的问题。 我没有考虑太多,因此使用了Google自定义搜索引擎。 在这篇文章中,我想回顾一下搜索静态站点的可能选项,并对每个选项进行回顾。 Google自定义搜索引擎 将Google自定义搜索引擎集成到静态网站是一个多步骤的过程: 创建一个搜索引擎项 通过Web界面进行配置 获取集成代码...
2020-07-10 10:58:54 2296
翻译 ci /cd_没有CI / CD这样的东西!
最近,我意识到一种趋势已经持续了很长时间:将CI和CD合并为同一个词组-CI / CD。 当营销人员完成此操作时,这与往常一样,是流行语和炒作的混合,并大喊“看着我!”。 但是,当专业软件工程师重复此操作时,我开始担心。 而这正是现在正在发生的事情。 这篇文章旨在概述我的想法,我可以推荐其他人以消除我认为与CI / CD有关的困惑。 为此,需要一些历史记录。 最初,简称为持续集成-CI。 ...
2020-07-10 10:48:54 152
翻译 openjdk11_OpenJDK 11,交易工具
在谈论安全管理器时,我演示了利用Attach API进行的黑客攻击。 后者需要知道要附加的JVM的PID。 因为我的好朋友Evgeny Mandrikov无法参加在乌克兰Devoxx的演讲,所以我为他做了一个快速的私人演示。 要获取我想附加的JVM的PID,我使用了ps -ef | grep java ps -ef | grep java命令。 那时,Evgeny告诉了我有关jps命令的信...
2020-07-10 10:38:54 920
翻译 java中的生命周期_Java中的功能生命周期
今天,我想解决一个似乎被相当一部分Java开发人员误解的主题:Java功能的生命周期。 产品管理101 在专注于Java之前,让我们先进行一般性的讨论。 假设您设计一种语言,一种框架,一种库,提供给第三方的任何东西。 由于您做得很好,因此该软件现已被广泛使用。 因为这是真实世界,所以一段时间后,您意识到所提供的特定功能还不够好。 我们将此功能称为feature-v1 。 您做得...
2020-07-10 10:28:54 236
翻译 spring mvc源代码_Spring MVC中的通用代码在哪里放置?
在为非Spring Boot应用程序的执行器编码的过程中,我遇到了一个有趣的问题,即在哪里实际放置一小段通用代码。 这篇文章试图列出所有可用的选项,以及它们在特定情况下的利弊。 作为一个具体示例,让我们使用REST端点返回可通过/jvmprops子上下文访问的所有JVM属性的映射。 此外,我想提供的选项不仅是搜索单个属性, 例如 /jvmprops/java.vm.vendor而且还允许过...
2020-07-10 10:18:54 317
翻译 java api设计规范_Java 8中的默认方法及其在API设计中的变化
Java 8在接口中引入了默认方法。 这篇文章描述了它们是什么,以及它们如何改变API的设计。 名义设计 以前,在Java中,接口只能具有合同 -没有实现的方法签名。 为了添加一些实现,需要一个类,无论是否抽象 。 因此,传统的API设计遵循以下层次结构: 根接口定义合同 中级类实现常见行为, 即 Bar 如有必要,层次结构中的类会覆盖此行为, 例如 Cor...
2020-07-10 10:08:54 202
翻译 servlet 映射_棘手的servlet映射!
上周,我通过对学生的作业进行评分,讲述了一个可以使用过滤器的创意用途 。 关于,还有一个经常出现的问题,值得关注的博客文章:servlet映射。 尽管从表面上看servlet映射似乎很容易,但有时它们可能是造成巨大麻烦的原因。 问题 在上述作业中,学生必须创建一个模拟的电子商务商店应用程序。 主页显示标题,简介短语以及醒目的图像。 问题是未显示图像。 在这一点上,学生可以发...
2020-07-10 09:58:54 242
翻译 管理系统开发提高生产力_关于开发人员的生产力
在这篇文章中,我想解决一些在软件开发界发现的广泛想法:被称为10x开发人员的神奇生物。 如果您一直在软件开发团队中工作,即使是很短的时间,您可能会得出这样的结论,即某些开发人员的贡献超过其他开发人员。 我早在几年前就得出了这个结论:我注意到有些开发人员更快地完成任务,而另一些则不那么快。 常识还同意,同一位开发人员可以凭经验提高生产力。 因此,并非所有开发人员都具有相同的生产力。 但是...
2020-07-10 09:48:54 382
翻译 如何构建可变大小的数组?_真正不可变的构建
几年后,有时会发生某个应用程序足够稳定以至于进入休眠模式的情况。 尽管它已被使用和有用,但它没有任何变化,它可以愉快地运行。 然后,过了一会儿,有人决定再次添加一些新功能。 除了找到源代码之类的简单事情之外,最重要的事情之一就是能够构建应用程序。 尽管看似微不足道,但仍有一些事情要考虑。 以下是有关如何使应用程序可以永久构建的一些建议。 我将以Maven为例,但以下建议可应用于任何构建...
2020-07-10 09:38:54 209
翻译 Spring Boot 2.0的指标-迁移
我已经 写过关于Spring Boot中出色的监视功能的文章 。 在Spring Boot 2.0中,对/metrics HTTP端点的设计进行了重大重写。 最重要的是,现在有一个专门用于度量的项目,称为Micrometer 。 在本文中,我将介绍如何将应用程序从Spring Boot 1.5迁移到Micrometer。 通过使用micrometer-spring-legacy依赖关系...
2020-07-10 09:28:54 247
翻译 jvm与非jvm语言优劣_JVM语言的兴衰
时不时有一篇文章预测Java语言的消亡。 有趣的是,他们都没有写日期。 但老实说,它们可能都是真实的。 这是每种语言的命运:消失于遗忘-或更确切地说,越来越少地用于新项目。 问题是什么将取代它们? 上周在InfoQ上看到了另一篇这样的文章。 至少,这个告诉了一个可能的替代者,Kotlin。 这让我开始思考JVM语言的状态和趋势。 请注意,趋势与每种语言的技术优缺点无关。 我于2001年...
2020-07-10 09:18:54 290
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人