/tmp/duangsuse.sock
23 subscribers
303 photos
3 videos
92 files
337 links
从 duangsuse::Echo (@dsuse) 跟进出来的分支,将在作者恢复原帐号访问的时候合并删除。
Download Telegram
艹,看看能不能用,全 TMD 是 raw types & cast
Maybe<T>
🤔 Java 有个不好就是有时候太莫名其妙了,比如方法的 final 修饰、interfaceabstract 修饰等等,语法上就不应该存在
@FunctionalInterface 的幻想破灭了... 现在这个样子很辣鸡。
其实 Promise 还可以 flatMap 的,这样就可以:

String title = Promise
.begin(() -> newClientCall(Requests.get("https://example.org")))
.map((r) -> r.body())
.flatMap((b) -> b.match("<title>(.*)</title>"))
;

我确认功能以后会添加...
emmm... 刚才我想的大概是两个 Promise 拼接的样子吧..

Promise.begin(readFile("foo.txt"))
.andThen((r) -> newClientCall(DELETE(r)));

这种
不好... 是并发数据竞争问题...
傻了 或许可以用 monitor (synchronized 块)
(好像不能在 lambda 表达式里用

乱序执行的情况下,我的算法可能会多次往相同的位置写入某个 o
因为希望 Android 上也能用,我不能使用 JDK 的 concurrent utils...

有没有更好的方法呢
算了...
This media is not supported in your browser
VIEW IN TELEGRAM
啊,想到一个方法,Android 应该提供了线程安全的 Vector
等等... 可是不能使用 AtomicInteger,没用...
那我就只好让要用的大牛自己实现安全的版本了...
一定会写完的!写完了就会继续讲下面的事情哦。
真香,我也想写一个,思路想到了
/tmp/duangsuse.sock
Promise-Java.zip
其实我的意思本来是 Promise 任务是抽象的... 现在好像为了 @FunctionalInterface 不得不额外弄了个 Working 出来

所以我得负责进行异步操作分配 Executor 了...
单元测试... 我会写一点。
文档在测试完代码可以用之后也会写的
+1 Tests wrote
🤔 #Java #task 打算写一个上下文依赖注入(CDI)库,不过不是最近的事情

就起名叫做 Pot,钦定以下使用:

@pot abstract class Door {
@implicit public Lock locker;
public void open(String password) {
locker.checkPass(password);
openDoor();
}
private abstract void openDoor();
}

这是最基本的 Bean 用法,除了使用 public @implicit, 还可以用

private @implicit Lock locker;
public @give(Lock.class) setLocker(Lock lck) { locker = lck; }

Door(@give Lock lck) { lock = lck; }

此外,还可以

private Dependency<Lock> locker;

然后在 constructor 里

locker.ensure();

当然 pot 的 annotation processor 可以自动生成这种 constructor

Door() { this.injectDependencies(); }

Pot 当然是全局的,要不然也无法提供注入了
也打算支持使用 Singleton 模式

Pot 应该支持依赖链条(比如 Lock 有无参数架构器,实例还有别的依赖)
此外,循环依赖也应该被良好的处理(创建先后有日志输出)

class Van {
@ImplicitContext
public @interface DeepDarkHome {}
@ImplicitContext
public @interface Jam {}
}

@DeepDarkHome
@pot abstract class VanHomeDoor {
@implicit public Lock locker; // with context DeepDarkHome
public void open(String password) {
locker.checkPass(password);
openDoor();
locker = Pot.refresh(locker, Jam.class); // dropped, re-created with context Jam
locker = Pot.rebuild(lock, VanHomeDoor.class) // re-created
}
private abstract void openDoor();
}

🤔 这样?我不是很熟悉 CDI

Pot 可以支持两种创建注入对象的方法:
1. @provides(...) 标记的方法
2. @provides(...) 标记的架构器
可以选择

Pot 支持按照反射参数化类型查找实例

@implicit List<User> storageUserList;
...
@provides List<User> loadUserListFromFile() {...}
...
@provides(cacheRefresh = 0) List<User> refreshUserListFromFile() {...}

需要创建组件(pot) 的实例时:
door_Jam = Pot.make(DarkDoor.class, "Jam");
door_Home = Pot.make(DarkDoor.class, "F**king comming");

当然关于那个 CDI 的 C 我不是很确定,以后可能再了解
不过其实组件化到这个地步也是足够的...
好耶!写了很多了,可是我不打算再写... 算了还是继续吧
突然感觉时间流逝变快了不少,没几行代码就被 timer 安排休息了( 🤪
总是写一些非常暴力的代码... 拿命编程系列
#Telegram 其实我的确注意到了,原频道几乎没用人过来...

我想这可能有助于我认识 ::Echo 的情况:很多人可能都是咸的无聊找事看的
很多人根本不想看那些东西...
即使看看平常的广播,最多也就 40 多个阅读而已。

既然我说过不会去在意什么小丑自娱自乐的事情,我以后不会再提关于订阅和阅读数的问题。(当然如果又提了就 *_*(

不过,你们爱看看,不看也 have a nice day on Telegram
的确大部分人都是『冷漠』的,但其实作为作者我不应该在乎这些...

过几天我要写一个 JVM 脚本语言,主打 REPL interactive 和小体积
这样大概就有人愿意看了吧,到底还是不投机。(其实作为一个内容作者来说,希望自己的东西被更多人看到也是一种很正常的愿望吧)

估计会有开发者喜欢,当然啦,其实 Telegram 中层中文圈开发者很少(虽然大部分都是 Java 、JavaScript 等完成上层设计任务的...)