oldratlee / io-api Licence: other
📐 API design example by I/O, the demo implementation of https://dzone.com/articles/generic-inputoutput-api-java
Programming Languages java 68154 projects - #9 most used programming language
Projects that are alternatives of or similar to io-api QuickDB A Generic CoreData Manager to accept any type of objects. Fastest way for adding a Database to your project.
Stars : ✭ 16 (-65.22%)
Mutual labels: generic
simple json Simple way to dynamically convert from and to JSON using build-time generators given a type.
Stars : ✭ 15 (-67.39%)
Mutual labels: generic
minecraft-protocol Library for decoding and encoding Minecraft packets
Stars : ✭ 20 (-56.52%)
Mutual labels: io
go course 個人多年來學習與實作上的心得筆記
Stars : ✭ 25 (-45.65%)
Mutual labels: generic
generic Generic programming library for Python
Stars : ✭ 50 (+8.7%)
Mutual labels: generic
Genumerics Genumerics is a high-performance .NET library for generic numeric operations
Stars : ✭ 16 (-65.22%)
Mutual labels: generic
inplace In-place file processing in Python
Stars : ✭ 21 (-54.35%)
Mutual labels: io
node-vs-ruby-io Node vs Ruby I/O benchmarks when resizing images with libvips.
Stars : ✭ 11 (-76.09%)
Mutual labels: io
UseCases This a library that offers a generic implementation of the data layers from the clean architecture by Uncle bob.
Stars : ✭ 23 (-50%)
Mutual labels: generic
echo-server Echo Server is a Docker-ready, multi-scalable Node.js application used to host your own Socket.IO server for Laravel Broadcasting.
Stars : ✭ 32 (-30.43%)
Mutual labels: io
Astview Astview is a graphical viewer for abstract syntax trees
Stars : ✭ 20 (-56.52%)
Mutual labels: generic
hev-task-system A simple, lightweight multi-task system (coroutines) for Unix (Linux/BSD/macOS)
Stars : ✭ 41 (-10.87%)
Mutual labels: io
hunt A refined core library for D programming language. The module has concurrency / collections / event / io / logging / text / serialization and more.
Stars : ✭ 86 (+86.96%)
Mutual labels: io
ertis-auth Generic token generator and validator service like auth
Stars : ✭ 28 (-39.13%)
Mutual labels: generic
SACK System Abstraction Component Kit
Stars : ✭ 18 (-60.87%)
Mutual labels: generic
Johnny Melodic Caching for Swift
Stars : ✭ 36 (-21.74%)
Mutual labels: generic
audria audria - A Utility for Detailed Ressource Inspection of Applications
Stars : ✭ 35 (-23.91%)
Mutual labels: io
VBCorLib The VBCorLib framework brings many of the powerful .NET classes to VB6.
Stars : ✭ 81 (+76.09%)
Mutual labels: io
Java
的通用IO API
设计
📖 English Documentation | 📖 中文文档
Java的通用I/O API (by Rickard Öberg )中给出了一个通用Java
IO API
设计,并且有API
的Demo
代码。更重要的是给出了这个API
设计本身的步骤和过程,这让API
设计有些条理。文中示范了从 普通简单实现 整理成 正交分解、可复用、可扩展、高性能、无错误的API
设计 的过程,这个过程是很值得理解和学习!
设计偏向是艺术,一个赏心悦目的设计,尤其是API
设计,旁人看来多是妙手偶得的感觉,如果能有些章可循真是一件美事。
在艺术工作中,真的艺术性工作量也只是一部分,而给出 方法 以 减少艺术工作之中艺术性工作量 的人是 大师 。 ❤️
原文中只给出设计的
没有给出可运行的实现及其连接的细节,看起来可能比较费力,因为设计细致分解后抽象度高而不容易理解。
为了大家和自己更深入有效地学习,需要:
给出这个通用IO API
的可运行的Demo
实现。
这个工程即是本人的可运行的Demo
实现。
当然个人力荐你先自己实现练习一下,这样比直接看我的实现,在学习上会有效得多!
写了一篇分析总结。
本人的分析总结:用Java I/O API设计练习的分析和总结 。这个你可以直接看,以更高效方便地理解这个API
的设计。
PS:
上面2件事其实是份自学的家庭作业哦~ 😆
在阿里中间件团队的时候(2011年),@ShawnQianx 大大 看到这篇文章时,给组员布置的家庭作业~
@ShawnQianx 对这篇文章及作者的评论:
设计时,一要分解好系统,二是多个组件拼回来还是系统预期的样子,二步都做好是难度所在。这个人分析和把控的功力很好!
包的功能
包com.oldratlee.io.core
核心接口
包com.oldratlee.io.core.filter
实现的Filter
功能的类
包com.oldratlee.io.utils
工具类
包com.oldratlee.io.demo
Demo示例的Main
类
更多信息
API设计的进一步学习资料
简单资料
系统书籍
Note that the project description data, including the texts, logos, images, and/or trademarks,
for each open source project belongs to its rightful owner.
If you wish to add or remove any projects, please contact us at
[email protected] .