Replies: 3 comments
-
|
Beta Was this translation helpful? Give feedback.
-
markdown的优势是网站的整体显示效果更好(doxygen比较丑...),目前很多生成网站的工具用的都是markdown语法。暂时打算用docusaurus,facebook开源的静态网站生成项目,让开发者关注内容本身。阿里开源项目办公室推荐的也是这个。 doxygen的优势是我们可以在头文件的API附近写注释,然后自动地生成文档。但目前还没有比较好的doxygen转markdown的工具。 参考了Chat2DB这个项目,他用的也是docusaurus,静态网站托管在 https://github.com/alibaba-open-source-website/Chat2DB ,阿里开源办公室给它自动注册了一个域名 (https://chat2db.opensource.alibaba.com/ ) ,它自己又注册了一个 chat2db.ai 的域名(几十块钱一年)。但由于阿里送的这个域名是有SEO优化的,所以在搜索引擎上搜到排名靠前的还是前者。 总之目前对于API文档,可能还是得代码里写一套,网站里写一套。没有一劳永逸的办法。 The advantage of markdown is that the overall display effect of the website is better (doxygen is ugly...). At present, many tools for generating websites use markdown syntax. For the time being, I plan to use docusaurus, Facebook's open source static website generation project, so that developers can focus on the content itself. This is also recommended by the Ali Open Source Project Office. The advantage of doxygen is that we can write comments near the API in the header file, and then automatically generate documentation. But there is no better doxygen-to-markdown tool yet. Refer to the Chat2DB project, he also uses docusaurus, and the static website is hosted at https://github.com/alibaba-open-source-website/Chat2DB, Ali The Open Source Office automatically registered a domain name (https://chat2db.opensource.alibaba.com/) for it, and it also registered a chat2db.ai domain name (dozens of yuan money for one year). However, since the domain name sent by Ali is SEO-optimized, it is still the former that ranks high on search engines. In short, for the API documentation at present, you may still have to write one set in the code and one set in the website. There is no one-size-fits-all solution. |
Beta Was this translation helpful? Give feedback.
-
docusaurus looks great. And how about https://www.npmjs.com/package/doxygen2md and https://pandoc.org/? |
Beta Was this translation helpful? Give feedback.
-
Personally I can think of these aspects that worth to be done in the later Photon releases.
1. Official document website.
The first version will only cover threading, sync primitives and basic IO. Other modules (for example, tools in the
common
directory) will not be included. The purpose is to help developers get familiar with the basic concepts of Photon coroutine, so they can quickly integrate Photon into their existing projects.I will probably starting doing this by next week. Still investigating doc generating tools like
doxygen
.2. Priority
This topic actually includes two parts: execution priority for thread (computational tasks), and IO priority.
In the traditional multithreaded synchronous programs, disk IO priority is related to the thread/process priority.
io_priority = (cpu_nice + 20) / 5
. So we would usually adjust the thread’snice
value to control the disk IO order. Async IO framework has no way to adjust priority (for instance, libaio) (correct me if I’m wrong).When things come to the io_uring, with the latest CFQ v3 scheduler (aka cfq-ts or time sliced cfq), we can achieve read priority on files. (write is still not possible). We only need to discuss the way we configure the
nice
value for the specific thread (or vcpu) that submits IO. Do we persist it in a thread-local-storage or the vcpu internal member?3. Provide more demonstrations, porting Photon to more famous open-source projects and replace their runtime.
4. Separate libs, and less dependencies.
For example, some users don't want involve libaio and libcurl, but only thread.
5. More enriched CI test environment, on different platforms and architectures.
6. Windows support (Long term)
7. Work stealing and intelligent coroutine scheduling (Long term)
Beta Was this translation helpful? Give feedback.
All reactions