q****x 发帖数: 7404 | 1 1. 遵循良好的代码规范。
2. 代码量适中,比如十万行以内。
3. 解决的是基础性、通用性的问题,读懂后有收获。
4. 作者是公认的权威,保证1、2、3得到普遍认可。
知乎上推荐leveldb in C++。Java和Python有没有类似的项目可以学习? |
g*****g 发帖数: 34805 | 2 spring
【在 q****x 的大作中提到】 : 1. 遵循良好的代码规范。 : 2. 代码量适中,比如十万行以内。 : 3. 解决的是基础性、通用性的问题,读懂后有收获。 : 4. 作者是公认的权威,保证1、2、3得到普遍认可。 : 知乎上推荐leveldb in C++。Java和Python有没有类似的项目可以学习?
|
e*******s 发帖数: 1979 | 3 C++的话看STL不好么
有很多人写源码剖析
【在 q****x 的大作中提到】 : 1. 遵循良好的代码规范。 : 2. 代码量适中,比如十万行以内。 : 3. 解决的是基础性、通用性的问题,读懂后有收获。 : 4. 作者是公认的权威,保证1、2、3得到普遍认可。 : 知乎上推荐leveldb in C++。Java和Python有没有类似的项目可以学习?
|
q****x 发帖数: 7404 | 4 leveldb似乎没有传说中那么牛逼。在同一个scope先new再delete不是什么好风格吧。
直接用local不好吗?
能想到的好处是内存释放更早。还有吗?
https://code.google.com/p/leveldb/source/browse/db/builder.cc
TableBuilder* builder = new TableBuilder(options, file);
meta->smallest.DecodeFrom(iter->key());
for (; iter->Valid(); iter->Next()) {
Slice key = iter->key();
meta->largest.DecodeFrom(key);
builder->Add(key, iter->value());
}
// Finish and check for builder errors
if (s.ok()) {
s = builder->Finish();
if (s.ok()) {
meta->file_size = builder->FileSize();
assert(meta->file_size > 0);
}
} else {
builder->Abandon();
}
delete builder;
【在 q****x 的大作中提到】 : 1. 遵循良好的代码规范。 : 2. 代码量适中,比如十万行以内。 : 3. 解决的是基础性、通用性的问题,读懂后有收获。 : 4. 作者是公认的权威,保证1、2、3得到普遍认可。 : 知乎上推荐leveldb in C++。Java和Python有没有类似的项目可以学习?
|
f********x 发帖数: 99 | 5 Java: Hadoop
【在 q****x 的大作中提到】 : 1. 遵循良好的代码规范。 : 2. 代码量适中,比如十万行以内。 : 3. 解决的是基础性、通用性的问题,读懂后有收获。 : 4. 作者是公认的权威,保证1、2、3得到普遍认可。 : 知乎上推荐leveldb in C++。Java和Python有没有类似的项目可以学习?
|
s***i 发帖数: 503 | 6 Java: Guava, Apache Commons. |
b*******s 发帖数: 5216 | 7 看上去stl源代码符合你的要求
【在 q****x 的大作中提到】 : 1. 遵循良好的代码规范。 : 2. 代码量适中,比如十万行以内。 : 3. 解决的是基础性、通用性的问题,读懂后有收获。 : 4. 作者是公认的权威,保证1、2、3得到普遍认可。 : 知乎上推荐leveldb in C++。Java和Python有没有类似的项目可以学习?
|
q****x 发帖数: 7404 | |
L***s 发帖数: 1148 | |
p***o 发帖数: 1252 | 10 新的要处理的版本太多,都乱了。你可以看老的sgi stl,还比较清爽。
【在 q****x 的大作中提到】 : 太底层了。而且格式怎么乱七八糟的。 : https://gcc.gnu.org/onlinedocs/libstdc++/latest-doxygen/a01593_source.html
|
|
|
k**********g 发帖数: 989 | 11
要看你是底层工作者还是中层工作者。
In general, libraries take care of all of the details (e.g. compiler and OS
differences, edge cases, different versions etc) so that the users of the
libraries can simplify their code.
If you need to work on libraries (typically correlated with "legacy" / "
maintenance" work), you'll deal with all those.
If you design libraries, you'll need to know both, with emphasis on catering
to the user's needs and interface cleanliness.
If you are application developer, perhaps you don't need to know too much
about the internals of the libraries. If there is some "advanced knowledge"
you must know, typically someone out there will have written articles on it,
so you should take time to read those articles.
【在 q****x 的大作中提到】 : 太底层了。而且格式怎么乱七八糟的。 : https://gcc.gnu.org/onlinedocs/libstdc++/latest-doxygen/a01593_source.html
|
k**********g 发帖数: 989 | 12
Someone suggests llvm ...
http://programmers.stackexchange.com/a/71974/
【在 q****x 的大作中提到】 : 1. 遵循良好的代码规范。 : 2. 代码量适中,比如十万行以内。 : 3. 解决的是基础性、通用性的问题,读懂后有收获。 : 4. 作者是公认的权威,保证1、2、3得到普遍认可。 : 知乎上推荐leveldb in C++。Java和Python有没有类似的项目可以学习?
|
n******t 发帖数: 4406 | 13 我从来不知道有谁是靠“读”别人的代码读成高手的。 |
N******K 发帖数: 10202 | 14 lol
【在 n******t 的大作中提到】 : 我从来不知道有谁是靠“读”别人的代码读成高手的。
|
q****x 发帖数: 7404 | 15 每个人都是从读开始上路的。
【在 n******t 的大作中提到】 : 我从来不知道有谁是靠“读”别人的代码读成高手的。
|
N******K 发帖数: 10202 | 16 我没怎么读过 我是从练开始
【在 q****x 的大作中提到】 : 每个人都是从读开始上路的。
|
q****x 发帖数: 7404 | 17 野球拳?
【在 N******K 的大作中提到】 : 我没怎么读过 我是从练开始
|
N******K 发帖数: 10202 | 18 乾坤一掷
【在 q****x 的大作中提到】 : 野球拳?
|
d****n 发帖数: 12461 | 19 不练是上不了路的,不读是上不了层次的。
【在 n******t 的大作中提到】 : 我从来不知道有谁是靠“读”别人的代码读成高手的。
|
N******K 发帖数: 10202 | 20 练功上层次?
【在 d****n 的大作中提到】 : 不练是上不了路的,不读是上不了层次的。
|
k*******d 发帖数: 1340 | 21 我原来也觉得STL太晦涩,后来看了几个container的代码以后发现还是很有收获的。一
方面可以很深刻地学习template,另一方面了解implementation detail对真正有效地
使用这些container非常有帮助。唯一的缺点就是变量名比较难看,一堆下划线。
Python有什么好的library,我也想看看。Python过于随意了,好的习惯很值得学习 |