在本文开始前,先给大家分享几个好用的IDEA激活码
这里提供几个最新的激活码,有需要的朋友可以试试,先到先用:
2022Intellij IDEA最新激活码,IDEA稳定专属激活码(持续更新)
2022Pycharm激活码,Pycharm稳定专属激活码(持续更新)
2022Webstorm激活码,Webstorm稳定专属激活码(持续更新)
众所周知,程序员最讨厌的四件事:写注释、写文档、别人不写注释、别人不写文档。因此,必须找到降低文档创建和维护成本的方法。目前,编写技术文档的模式如下:
痛点摘要有三个方面:
戴尔解决这些问题的方法:
本地编辑、浏览聚合到IDE中,提供身临其境的体验。
在文档和代码之间建立强有力的关系,减少副本,提高可操作性,提高文档的接触率。
代码与文档属于同一个Git仓库,通过版本控制,确保业务迭代导致的文档版本与代码不匹配。
发布可在线导出文档的工具,以便随时使用浏览器访问。
案例概要
与原始模式相比,新方案完全脱离浏览器/文档编辑器,可以将联机页面同步完全传递给计划的自动分发。
图中橙色部分是方案的重点,根据分工分为离线、在线两部分,责任如下:
离线:IDEA Plugin
实现自定义语言分析、分析;
提供文档内容预览、编辑器。
它提供了一系列将代码和文档关联起来的实用功能。
在线:Gradle/Dokka Plugin
桥接、重用IDE插件的语义分析、预览内容生成功能
扩展Dokka Renderer以实现HTML和飞行文档的导出功能。
方案建设使用了很多有趣的技术,后面详细介绍了。
离线效果
IDEA Plugin提供侧栏和强大的编辑器。下面从编辑、导航两个角度进行说明。
编辑经验
假设存在源码如下:
public class ClassA {
public static final String TAG = "tag";
ClassB b;
/**
* method document here.
*
* @param params input string
*/
public static void invoke(@NotNull String params) {
System.out.println("invoke method!");
System.out.println("this is method body: " + params);
}
public ClassA() {
System.out.println("create new instance!");
}
private static final class ChildClass {
/**
* This is a method from inner class.
*/
void innerInvoke() {
System.out.println("invoke method from child!");
}
}
}
文档中添加该类的引用就是这个效果:
在文档中添加对此类的引用就是这种效果。
与复制和粘贴代码不同,新模式具有以下优点:
关联性更强,代码片段更改时预览也会更改。
重组容易,如果引用的类名、方法名和字段名发生更改,文档内容将自动更改,从而防止引用无效。
更直观、编辑和导航时,可以更快地找到代码的来源。
输入更柔软,具有完美的补充能力。
导航经验
与一般的Markdown相比,新方案更熟悉。
身临其境的使用,界面内置在IDE中,无需移动到其他应用程序。
提到的源代码旁边都有行标记。点击一下就可以找到文件。
文档“浏览器”支持突出显示与IDE匹配的代码、跳转引用。
在线效果
代码中的文档定期自动远程分发。以实际业务文档为例,将HTML构建在轻量级服务中后,时间如下:
飞行书的产物是这样的。
这些在线页面主要面向读者,而不是当前团队,内容不提供从CI定期同步到IDE的功能。
实现技术
项目的结构如下:
考虑到用户体验部分主要出现在IDEA(Android Studio)内,戴尔的技术堆栈选择基于IntelliJ。可以按模块分为三部分。
基础层
Idea插件
Gradle/Dokka Plugin
通用逻辑(与语言实施相关)封装在基础架构层中,仅依赖于IntelliJ Core。与IntelliJ平台相比,IntelliJ Core仅保留与语言相关的功能,通过简化codeInsight、UI组件等代码,在IntelliJ的主要产品(包括图片中的Kotlin、Dokka等)中广泛使用。
下次再给大家分享更多实用技术
本文采摘于网络,不代表本站立场,转载联系作者并注明出处:https://idea.medeming.com/share/111.html