Forwarded from 4o4
程序员史诗般必读文章:
英文版:https://engineering.linkedin.com/distributed-systems/log-what-every-software-engineer-should-know-about-real-time-datas-unifying
中译版:https://www.kancloud.cn/kancloud/log-real-time-datas-unifying/58708
顺着中译版还发现了一个不错的 IT 英语材料中译文仓库:
https://github.com/oldratlee/translations
英文版:https://engineering.linkedin.com/distributed-systems/log-what-every-software-engineer-should-know-about-real-time-datas-unifying
中译版:https://www.kancloud.cn/kancloud/log-real-time-datas-unifying/58708
顺着中译版还发现了一个不错的 IT 英语材料中译文仓库:
https://github.com/oldratlee/translations
Linkedin
The Log: What every software engineer should know about real-time data's unifying abstraction
I joined LinkedIn about six years ago at a particularly interesting time. We were just beginning to run up against the limits of our monolithic, centralized database and needed to start the transition to a portfolio of specialized distributed systems. This…
Forwarded from 少数派sspai
谁能帮你提高英语写作水平?Microsoft Editor 与 Grammarly 横向对比 [by JasperJia]
https://sspai.com/post/60185
https://sspai.com/post/60185
少数派 - 高品质数字消费指南
Microsoft Editor vs. Grammarly: 谁更适合你? - 少数派
在急于订阅之前,值得尝试使用 Microsoft Editor 和 Grammarly 的免费版。选择适合自己的,比选择功能看似强大的,更为重要。
Forwarded from Jiajun的编程随想
这个网站把常见算法和数据结构的操作过程做成了动画,非常有助于理解算法和数据结构: https://jiajunhuang.com/sharing#402
Forwarded from Jiajun的编程随想
MIT出品的开发工具的讲解课程,包括shell, vim, git, debug, 安全等内容: https://jiajunhuang.com/sharing#403
Forwarded from Deleted Account
Kafka终于开始把ZooKeeper这个依赖干掉了!
https://confluent.io/blog/removing-zookeeper-dependency-in-kafka/
相关的进度
https://issues.apache.org/jira/browse/KAFKA-9119
https://confluent.io/blog/removing-zookeeper-dependency-in-kafka/
相关的进度
https://issues.apache.org/jira/browse/KAFKA-9119
Confluent
Kafka Needs No Keeper - Removing ZooKeeper Dependency
Say goodbye to Kafka ZooKeeper dependency! KIP-500 introduces a new way of storing data in Kafka itself, rather than in external systems such as ZooKeeper.
Architecture
❑ Avoid unnecessary architectural complexity.
❑ Avoid unnecessary use of EJB.
❑ Use abstraction layers to hide the complexity of core J2EE and J2SE APIs.
❑ If possible, use an O/R mapping product to simplify the persistence layer.
❑ Use a good application framework.
❑ Focus and methodology
❑ Focus! Know what problems you should be solving, and concentrate on them.
❑ Use a reference architecture and start from a template application.
❑ Use an agile development process.
❑ Use appropriate tools.
❑ Avoid unnecessary architectural complexity.
❑ Avoid unnecessary use of EJB.
❑ Use abstraction layers to hide the complexity of core J2EE and J2SE APIs.
❑ If possible, use an O/R mapping product to simplify the persistence layer.
❑ Use a good application framework.
❑ Focus and methodology
❑ Focus! Know what problems you should be solving, and concentrate on them.
❑ Use a reference architecture and start from a template application.
❑ Use an agile development process.
❑ Use appropriate tools.
Forwarded from 八宝粥 |D端人口
海盗版英文电子书搜索教学:
1. 登陆Amazon,搜索你喜爱的英文书
2. 复制10位或13位ISBN代码
3. 登陆http://gen.lib.rus.ec ,粘贴搜索下载
不做伸手党人人有责(如有能力请支持正版)
1. 登陆Amazon,搜索你喜爱的英文书
2. 复制10位或13位ISBN代码
3. 登陆http://gen.lib.rus.ec ,粘贴搜索下载
不做伸手党人人有责(如有能力请支持正版)
Forwarded from 𝓐𝓵𝓶𝓸𝓷𝓭🍪
发现一个介绍 PyTorch 的playlist,动画效果属实不错,缺点是废话有点多。。建议1.25或1.5倍速 https://www.youtube.com/playlist?list=PLZbbT5o_s2xrfNyHZsM6ufI0iZENK9xgG
If you are using Maven and if you place the logback-test.xml under the src/test/resources folder, Maven will ensure that it won't be included in the artifact produced. Thus, you can use a different configuration file, namely logback-test.xml during testing, and another file, namely, logback.xml, in production.
Forwarded from Jiajun的编程随想
《用peewee代替SQLAlchemy》用了几年SQLAlchemy,但是说实话,复杂的很,包括配套的DB Migration工具alembic。想要配置一个自动生成migration也是很复杂。最近用了几天peewee,发现真的是简单好用...
via Jiajun的编程随想 https://ift.tt/2zGDurT
via Jiajun的编程随想 https://ift.tt/2zGDurT
Forwarded from Jiajun的编程随想
这篇文章解释了为啥在Docker容器里,如果监听localhost,外界无法访问,清晰易懂: https://jiajunhuang.com/sharing#412
不管你做一个什么产品,都一定有一个被操作的主体,比如:服务框架管理的Service,任务框架管理的Task,Spring管理的Bean等,这就是实体域。
即然有被操作者,就一定有操作者,它管理被操作者的生命周期,发起动作,比如:服务框架的ServiceInvoker,,任务框架的TaskScheduler,Spring的BeanFactory等,这就是服务域。
服务域发起动作,在执行过程中,会有一些临时状态需要存储交换,比如:Invacation,Execution,Request等,这就是会话域。
即然有被操作者,就一定有操作者,它管理被操作者的生命周期,发起动作,比如:服务框架的ServiceInvoker,,任务框架的TaskScheduler,Spring的BeanFactory等,这就是服务域。
服务域发起动作,在执行过程中,会有一些临时状态需要存储交换,比如:Invacation,Execution,Request等,这就是会话域。
* Engine 为服务域
* 它是API的入口,并负责实体域Template的生命周期管理,它是Singleton单一实例的,加载后不可变,所以是线程安全的,它的初始化过程较重,请复用单例。
* Template 为实体域
* 代表着被操作者,它是Prototype原型实例的,即每个模板产生一个实例,加载后不可变,同样也是线程安全的,模板变化后,将产生不同的实例,而不改变原实例。
* Context 为会话域
* 持有操作过程中的所有可变状态,它是ThreadLocal线程内实例的,即不和其它线程竞争使用,所以也是线程安全的,请不要跨线程传递,它的初始化过程很轻量,每次模板执行前都新建实例,执行完即销毁。
这样划分的好处是,职责清晰,可变状态集中,每个域都是无锁线程安全的,保证在大并发下,不会降低系统的活性。
* 它是API的入口,并负责实体域Template的生命周期管理,它是Singleton单一实例的,加载后不可变,所以是线程安全的,它的初始化过程较重,请复用单例。
* Template 为实体域
* 代表着被操作者,它是Prototype原型实例的,即每个模板产生一个实例,加载后不可变,同样也是线程安全的,模板变化后,将产生不同的实例,而不改变原实例。
* Context 为会话域
* 持有操作过程中的所有可变状态,它是ThreadLocal线程内实例的,即不和其它线程竞争使用,所以也是线程安全的,请不要跨线程传递,它的初始化过程很轻量,每次模板执行前都新建实例,执行完即销毁。
这样划分的好处是,职责清晰,可变状态集中,每个域都是无锁线程安全的,保证在大并发下,不会降低系统的活性。