V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  RobberPhex  ›  全部回复第 3 页 / 共 9 页
回复总数  173
1  2  3  4  5  6  7  8  9  
我 off topic 一下哈。

《人月神话》书中提了软件工程的复杂度主要来自两个方面:本质性的的困难、附属性的困难。

题主所属的,C++过于复杂,可以从其他语言吸收特性等,都是附属性的困难。

但需要注意的是,“没有银弹”的主要原因,是本质性困难的存在。本质性的困难难以解决,因为大部分的活动是发生在人们的脑海里,缺乏有效的辅助工具:
* 复杂性( complexity ):软件要解决的问题,通常牵扯到计算步骤,这是一种人为、抽象化的智能活动,多半是复杂的。
* 隐匿性( invisibility ):尚未完成的软件是看不见的,即使利用图标说明,也常无法充分呈现其结构,使得人们在沟通上面临极大的困难。
* 配合性( conformity ):在大型软件环境中,各子系统的接口必须协同一致。由于时间和环境的演变,要维持这样的一致性通常十分困难。
* 易变性( changeability ):软件所应用的环境常是由人群、法规、硬件设备、应用领域等,各因素所汇集而成,而这些因素皆会快速变化。

所以编程语言的发展还是有必要的,在解决附属性困难上很有必要。
但是如果我们要大幅提升开发效率,目前比较好的方向是 AI 、形式化验证等。现阶段,编程语言的进化在解决本质性困难上用处不大。
2021-02-24 11:50:33 +08:00
回复了 bbao 创建的主题 程序员 大家所在的公司都使用什么 RPC 框架?
dubbo
2021-02-24 11:46:24 +08:00
回复了 abersheeran 创建的主题 程序员 无需申明格式的跨语言高性能序列化格式有哪些?
虽然题主限定了“无需声明格式”,但是从回复来看,题主是要上微服务。

那么我觉得还是用 dubbo 或者 grpc 这种成熟的序列化、rpc 方案比较好。
选择一个技术其实是选择了它的生态,比如你在初期选择了 msgpack,那么后续的网关(比如网关的 session 粘滞)、mesh (解析协议内容),都需要选择支持 msgpack 的。初期的技术选型会极大地影响后续的选择。

另外,基于 msgpack 自己做 rpc 框架(或者采用现有的),后续很多已有的坑都需要自己踩一遍(加班 N 小时 /天 /月),比如如何实现流式调用,如何实现 rpc 连接池,如何做监控等。从这一方面来说,dubbo 成熟度比 grpc 要高,官方的模块中包含了很多生产中用到的特性,而且 dubbo3 也会支持 grpc,也能享受到 grpc 的生态优势。

总而言之,如果是自己研究,可以多看看一些序列化 /rpc 框架;如果是生产使用,还是看下业界的流行方案。
2020-04-06 14:32:08 +08:00
回复了 zxc1234 创建的主题 程序员 请教 jvm 的一个问题
这个问题真的很差,完全没有描述清楚问题。

另外,这个可以在 jvms 中找找答案。
2020-03-11 00:56:15 +08:00
回复了 ahuanggg 创建的主题 Java 初学 Java ,表示真香!
loom 还没出,java 的异步编程还是比较难用的
2019-12-28 14:03:19 +08:00
回复了 alexliux 创建的主题 程序员 WSL CentOS 限免,还剩 3 天,速度来
也真是敢用,第三方个人开发者发布的一个镜像,如果里面有木马或者后门呢?
2019-06-23 12:42:40 +08:00
回复了 Maboroshii 创建的主题 Linux 米聊也出 Linux 版本了,是 appimage 格式的
首页不支持 https
2019-06-02 00:27:05 +08:00
回复了 hlwjia 创建的主题 程序员 我也来带带各位想学英语的 v 友吧
cm9iYmVycGhleA== ( base64 )

谢谢楼主
看需求,个人觉得 flutter 好一点。

官方支持多平台,而且大厂也在逐渐采用。
bashdb?
2019-05-27 06:13:56 +08:00
回复了 smilepig 创建的主题 Java 大佬们, idea 可以分布式编译吗?
Java 的默认编译规则是缓存友好的,你不改.java 文件,它就不会重新编译对应的文件。
一般比较耗时的,要不就是打包,要不就是自定义流程。
1. 对于打包而言,java 项目,一般在 IDE 内运行的时候,都是直接编译到 target 目录运行,省去了打包这个流程。
2. 对于自定义流程,很难优化。一般也就缓存一条路了,哦,还有并行编译。

总而言之,开发阶段的编译,时间要尽可能短。

至于“分布式编译”,是有这么个东西,但是不是为了开发过程使用,而是项目快要上线了,重新编译这个项目的问题。
楼上提到了 Facebook 的 Buck,不过那个看起来也仅仅是并行编译,没法利用多台机器。
要真正利用多台机器来编译的话,可以试一试 Bazel 的 Remote Build Execution (我不知道目前是不是已经可用了)。
2019-05-22 12:19:46 +08:00
回复了 Renzheng 创建的主题 Java Linux 下 jdk 的下载
自己用 curl 模拟登陆、获取 AuthParam、下载等一系列流程应该可以,只能希望 oracle 不会出验证码了。

如果不行,换 https://adoptopenjdk.net/ 吧。
我关注的点是,IDEA 和 Eclipse ( VSCode )为啥都不支持 APT 呢? IDE 不就应该“模仿”编译器吗?
2019-05-15 18:20:37 +08:00
回复了 526326991 创建的主题 Java Oracle 官网下载 JDK 居然要登录 0.0
2019-04-13 18:42:23 +08:00
回复了 kosmosr 创建的主题 Java Java ,现在工作中 stream 用的多吗
想用来着,但是 stream 还是有几个问题的:
1. 复杂逻辑,一套就出现了很长的缩进。“火箭式代码”,就在刚刚发现项目里出现了 stream+lamda,8 级缩进😂
2. stream+lamda 打断点,如何查看 return 的值呢?比如:
```
Collectors.toMap(
info -> Optional.ofNullable(processKey(info)),
info -> Optional.ofNullable(processValue(info))
)
```
我想每次在 map 里加一个 pair 的时候停下来,并知道刚刚 /将要添加的 pair 是啥。

---
另外,谈谈我的理解,不对的话,请及时斧正。
stream 在简单的数据转换时很有用,比如将 List<String>转换成 List<Long>

面对复杂逻辑,就需要 stream+lamad/function 了,类似函数式。
但是函数式的缺点就在于,1. 人的理解一般是指令式的,函数式很绕。2. debug 的时候,不好 debug
2019-04-13 18:31:37 +08:00
回复了 rizon 创建的主题 程序员 有没有可以内网部署或者支持私有云存储的在线流程图工具?
draw.io 在 github 上可以下载 war 包自己部署

也支持桌面版:https://about.draw.io/integrations/#integrations_offline
2019-01-17 18:57:44 +08:00
回复了 photon006 创建的主题 全球工单系统 内网通能兼容下 wine 么?
节点使用指南里面说了:“尊重是相互的”。
楼主就问了一句行不行,为什么有人反倒攻击楼主了??
2019-01-03 16:36:57 +08:00
回复了 gddaisy 创建的主题 酷工作 # 微软后端/ Java 招聘# 微软上海 Java 大牛招聘
我想问一下具体的工作要求。现在在找工作,非常喜欢现在的微软,但是没有工作要求,感觉贸然投递会留下黑历史😂
2018-12-26 07:43:06 +08:00
回复了 coooold 创建的主题 PHP PHP 有 PSR,为什么 golang 没有 GSR
PHP-FIG 是为了框架可交互性的,它的 PSRs 一部分是补足 PHP 的不足(比如 classloader 之类的),一部分就是为了各个框架能够互相协作(比如 http message interface,但是最近的几个 PSR 实在是太水了,直接给 interface 就完事了😂)。

从这个意义上来说,go 语言其实集成了一部分 PSR 的功能,比如代码格式、classloader 之类。
但是框架之间的可交互性也是比较重要的,但这只能等 go 语言框架足够多,各个框架负责人来建立一个类似的组织来做这事。


BTW,DI 仅仅是最基础的一部分,但是不是全部。
1  2  3  4  5  6  7  8  9  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1218 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 36ms · UTC 18:19 · PVG 02:19 · LAX 10:19 · JFK 13:19
Developed with CodeLauncher
♥ Do have faith in what you're doing.