精华内容
下载资源
问答
  • 在先前的一系列《云研发:研发即代码》文章里,我们介绍了软件工程的代码化闭环。同时,在《Water:云研发架构模式》介绍了设计这样的开发环境里,我们所需要的一些模式。今天呢,作为这一系列的落...

    在先前的一系列《云研发:研发即代码》文章里,我们介绍了软件工程的代码化闭环。同时,在《Water:云研发架构模式》介绍了设计这样的开发环境里,我们所需要的一些模式。今天呢,作为这一系列的落地实践,我们将介绍云研发 IDE的设计思想,以及如何实现,当然还有一点儿早期代码:https://github.com/inherd/uncode

    第一次声明:这是一个概念性 IDE 的设计,暂不适合任何生产环境。

    在开始真正阅读之前呢,为了能更好地让大家理解,我们要回顾一下软件工程行业:

    • DevOps 理念在国内的软件行业有了长足的发展,在包括传统企业(银行、制造业)在内的公司里已经广泛接受,并进行了大规模推广。

    • 云原生技术已经成为市场的主流趋势。云迁移与遗留系统上云是市场的一大热门话题。

    • 中台方法论在实践上还缺少真正的成功案例。

    • 低代码/无代码平台逐渐成为新的建设目标。

    • 云开发有了越来越多的中小规模应用案例。

    • AI 代码生成正在被小范围验证。

    从整个行业而言,人们的关注点一直是如何提升技术生产力? 现在技术到了一个新的阶段了,而需求的转换大大限制了人们的开发速度。于是无论我们的 DevOps 和云开发实施得再好,也会陷入需求与技术隔离的瓶颈。这就是为什么我们需要云研发 理论体系 :),通过代码化的方式,一站式解决需求到设计,再到代码的问题。

    对于云研发理论来说,我已经设计好了理论基础、软件架构、开发模式,并且对其中的一系列东西进行了验证,如:文档代码化、需求代码化、代码的代码化 等。

    我们需要一个容器,把这些内容、模式、代码整合到一起,这就是 Uncode,一个概念性的云研发 IDE。

    Uncode,一个云研发 IDE

    Uncode 是一个面向云研发时代设计的下一代概念性 IDE。特性:

    • 流程化为领域语言。Process as code

    • 一切皆 DSL。万物代码化

    • 开发环境即流程

    简单来说,你可以在这个 IDE 上完成:需求的编写,转换需求为设计,设计关联代码,禅模式编程,开发完即可上线。

    与之相对比的是,传统的一站式 DevOps 门户,尽管你可以通过跳转来完成,但是无法相互关联和设计。与之相近的是 GitOps,即将应用系统的声明性基础架构和应用程序存放在 Git 版本库中。但是它们都不闭环,也不完整。

    云研发 IDE 模式:流程即领域语言

    回到软件开发上,我们的软件开发需求始于一个大特性或者史诗故事,这些故事会转换为一个 feature,如 Cucumber 中的:

    # author: Phodal HUANG
    # status: doing
    # language: zh-CN
    功能: 第一个用户故事
    场景打开 Uncode
    假如我在 Terminal 工具里
    当输入 uncode
    那么则能在 Uncode IDE 里打开当前项目
    

    需求设计人员在这一步之前,将需求转换为了故事,故事与特性之间的关系记录在这个 feature 中。开发人员从 IDE 中看到需求,标记了对应的状态 status,就可以进入代码的设计阶段。

    在设计这个阶段,我们先设计了 design 的三种类型: flow、 model、 ui,对应于流设计、模型设计和 UI 设计。而我们要在 Uncode 中实现的部分便是需求与模型、流和 UI 的绑定。围绕模型,我们还得构造统一的领域语言,用于自动化关联接口与设计。从模式上来说,这个和无代码/低代码的开发是相似的。

    唯一不同的是描述方式。使用领域特定语言来描述内容,我们才能对系统进行合理地重构。

    云研发 IDE 模式:一切皆文件

    Linux/Unix下的哲学核心思想是『一切皆文件』。

    在现今的开发环境之下,我们在看板上挑选卡片,又或者是通过低代码编辑器生成,使用的存储介质都是数据库。而数据库这些东西并不存在于开发环境中,而是放置于远程服务器上。这就造成了另外一个痛点,无法简单反向关联、需求与代码隔离等等。

    于是,作为云研发 IDE 的第二个模式,将所有的内容使用文件保存,并且使用版本管理工具(如 Git)进行管理。如我们的需求以类似于代码的形势存储在数据库中,可以实现以下特性:

    • “不可伪造”

    • “全程留痕”

    • “可以追溯”

    • “公开透明”

    • “集体维护”

    没错,这就是一个区块链系统。一旦需求发生了变化 ,你可以即刻感知到。不过,一旦你的代码与模型不相符合,你的代码就无法提交,或者模型被自动修改 :(。

    云研发 IDE 模式:开发环境即流程

    作为一个集成开发环境,现有的 一站式 DevOps 软件研发管理协作平台 都应该只被当作管理和展示用途。而从设计本身来说,一个 Dashboard 和一个开源工具,本身就分工。

    我们在代码库上有了需求,那么我们可以借助于 IDE:

    1. 将需求以看板的形式在本地重新可视化出来。

    2. 将设计领域的语言在本地可视化出来,并将之与代码进行关联。

    3. 高亮需要所有修改的代码块。如 Controller、View 等。

    4. 将模型的修改反向关联到设计上,以实时追踪设计的正确性。

    我们还可以做一些不那么正确的事情 ,如锁定开发人员的修改范围。

    云研发 IDE 模式:填空式/选择式编程

    对于软件架构师来说,人们经常有这么一些痛点:

    • 面对的是缺乏经验的开发者,难以快速地推进系统的开发。

    • 开发者缺乏对系统的了解,在错误的地方修改错误的代码。

    因此,回到 TypeFlow 的观点上,我们既然已经设计好了模型,设计好了输入和输出,那么我们一定能生成中间的方法及其返回值,并为其设计一个 mock 的对象。如:

    @RequestMapping("/")
    String home() {
    return "Hello, World!"
    }
    

    这种模式对于业务应用开发来说,非常易于实现 —— 生成绑定过程中的各类函数等等。

    选择式编程。而一旦我们在组织内的所有代码都被索引之外,我们有能力通过识别输入和输出,以及对应的方法名,就能在 IDE 中推荐对应的方法让你选择。

    云研发 IDE 基础要素

    就这么一看,我们只需要搞好 IDE 的事情即可。然而, 并非如此,我们还要做的事情还有一些:

    1. 开发即部署。即 local dev 便是 dev server,可直接接入现有的系统。

    2. 万物即 DSL。具备一定等级的程序语言设计能力。

    3. API 的 API。即将现有的内部、外部 API 进行抽象化设计,以提供快速可用的 API。

    开发即部署 —— 云开发环境

    从开发层面来看,我们一直在往复地浪费本地环境和线上开发环境,与此同时还有对应的测试运行时间、构建时间等。我们需要一个于云开发环境的机制。

    加速联调、测试过程。当我们的本地环境上云之后,一旦需要与其它系统对接时,所有的开发、测试效率将大大提升。譬如说,我们的接口需要多提供一个参数,传统模式之后,我们要在本地运行,再通过流水线构建和部署。而现在,不再需要这个过程了,只需要配置好 Gateway,轻轻松松进行开发。

    加速环境搭建。我们不再需要在本地配置开发环境,只需要 1-click 就可以在本地 IDE 里直接调试。

    市面上已经有一个勉强配合的概念:Nocalhost

    抽象的抽象:DSL

    对于需求、设计、开发、测试等的抽象,一直是我在去年研究的重点,它包含了:

    • 需求的抽象

    • 设计化为抽象

      • 架构描述语言

      • 统一建模语言

    • 版本管理抽象

    • 构建工具抽象

    即将这一系列的步骤转换为领域特定语言 —— 只有将流程、工具、行为进行抽象,我们才得以优化整个系统。

    胶水设计:API 的 API

    软件开发是一项复杂的团队活动。在一个系统里,我们要与大量的内、外部系统进行关联。而为了简化开发人员的负担,我们需要提供一个新的 API 来将现有的 API 进行封装。

    如在现有的模式之下,为了记录一个日志,我们需要在依赖管理工具中引入对应的依赖,再添加相当的代码。而所有的 API 都是在更新的,这一系列应该将由 IDE 本身来完成。在这种模式之下,我们只需要输入对应的 snippets,便能完成这一系列的自动化过程操作。

    技术细节

    最后,我们还是回到代码上:https://github.com/inherd/uncode/

    架构设计

    我决定使用我设计的新架构设计套路来展示一上 Uncode IDE 的架构。由于不确定性较大,现有的系统是一种介于单体与微架构 + 模块化的方式设计的,我想了想后来就称之为流体模式。一种在持续演进的过程中,不断进行不可预料地拆分架构单元的模式。

    在驱动方式上,由四种模式构成:

    • 模块化。

    • 管理和过滤器。主要进行领域特定语言的设计

    • 搭档模式(sidecar)。将诸如语言解析等独立为进程,通过进程调用来实现跨平台

    • 容器桥。将 UI 展示与逻辑相隔离,让 IDE 的大部分组件与 UI 无关。

    同时系统的物理设计上,打算采用领域驱动的方式进行。

    框架选型

    考虑到这是底层开发 + 系统编程,我们:

    1. 使用 Rust 来作为主要开发语言

    2. 在 UI 展示上,暂时使用 Tauri(WebView 容器) + React 来展示需求(本地看板)与设计(建模等)。

    3. 使用 TypeScript 作为 UI 部分开发语言

    4. 使用 RPC 作为与多个 DSL 的通信协议

    5. ……

    依旧地,这个项目将继续在 Inherd 小组上开发~~。

    FAQ 及其它

    代码:https://github.com/inherd/uncode/

    vs Intellij IDEA or VSCode / Theia

    并非完全竞争关系,编码这部分的功能,还是这两货比较流行。Uncode 不会在前期造这方面的轮子,只是显式地集成它们,或者被集成。

    Uncode 优先解决 DevOps 的本地化,将其融入开发的开发过程的问题。

    其它

    最后一次声明:这是一个概念性 IDE 的设计,暂不适合任何生产环境。 欢迎加入云研发的微信研讨群。

    展开全文
  • cd janus-gateway sh autogen.sh ./configure --prefix=/opt/janus --enable-websockets --disable-plugin-lua make
  • IDE设置代码格式和代码模板

    千次阅读 2015-09-28 12:42:35
    IDE设置代码格式和代码模板

    提前告知:

    可加q 2502499681 进行jar包的索取, 也可以自己进行下载!

    eclipse:

    请直接导入formatter.xmlcodetemplates.xml,导入后修改codetemaptes中的邮箱地址

      idea:

    下载 EclipseFormatter.jar 包 地址:http://plugins.jetbrains.com/plugin/6546 

    在idea导入 EclipseFormatter.jar 包

    导入formatter.xml

    File -> import setting 导入 idea_file_templates.jar 包

     


     然后idea 的 fomatter 属性 就好了


    谢谢!

    展开全文
  • MPLAB X IDE调试代码

    千次阅读 2018-11-14 01:05:58
    MPLAB X IDE调试代码

    分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow

    也欢迎大家转载本篇文章。分享知识,造福人民,实现我们中华民族伟大复兴!

                    1. 在Project 窗口中,选择项目或将其设为主项目(右键单击项目并选择“Set as main”)。
    2. 单击“Debug Project”图标(或选择Debug>Debug Project 或Debug>Step Into)开始调试运行。
    要暂停应用程序代码:
    • 单击“Pause”图标(或选择Debug>Pause)暂停程序执行。
    要再次运行代码:
    • 单击“Continue”图标(或选择Debug>Continue)再次启动程序执行。
    要结束代码的执行:
    • 单击“Finish Debugger Session”图标(或选择Debug>Finish Debugger Session)
    结束程序执行。
    在使用调试功能时(从第4.18 节“使用断点控制程序执行”开始), Run 和Debug Run 之间的差异将变得很明显。
    要启动调试器:
    如果代码是针对调试而编译的,并且只是希望启动调试工具,则可以通过选择“Debug Project”图标旁边的向下箭头并选择“Launch Debugger”(启动调试器)


    设置或清除简单断点
    要在某个代码行上设置断点,请执行以下操作之一:
    • 在源代码编辑器中单击代码行的左边缘
    • 按下Ctrl+F8
    要清除断点,请执行以下操作之一:
    • 重复设置断点的步骤
    • 选择Debug>Toggle Breakpoint。


    单步执行代码
    使用Debug 菜单和Debug 工具条上的单步功能之一,可从代码起始处或断点处暂停之后逐步执行代码。检查变量值的变化(见下一节)或确定程序流是否正确。
    有几种方法可以单步执行代码:
    Step Over—— 执行程序的一行源代码。如果该行是一个函数调用,则执行整个函数,然后停止。
    Step Into—— 执行程序的一行源代码。如果该行是一个函数调用,则程序执行到该函数的第一条语句,然后停止。
    Step Out—— 执行程序的一行源代码。如果该行是一个函数调用,则执行函数,并将控制返回给调用方。
    Run to Cursor (运行至光标位置) —— 运行当前项目,直到文件中的光标位置,并停止程序执行。
    Animate (连续单步运行)——在运行时执行单步操作,并在运行时更新寄存器的值。连续单步运行的运行速度低于Run 功能,但它使您可以在Special Function Register (特殊功能寄存器)窗口或在Watches 窗口中查看变化的寄存器值。


    观察符号值变化
    在Watches (观察)窗口中观察选择更改的符号的值。在程序执行期间确定这些值是否为预期值可以帮助您调试代码。

    要查看Watches 窗口,请执行以下操作之一:
    • 选择Window>Debugging>Watches 打开窗口。
    • 如果Output 窗口已打开,则在窗口中单击Watches 选项卡。
    要直接创建新的观察:
    可以通过以下操作之一,向Watches 窗口直接添加符号:
    • 双击名称列,并输入一个全局符号、SFR 或绝对地址(0x300)。
    • 在Editor 窗口中右键单击某个全局符号或SFR,并选择“New Watch”。
    • 在Editor 窗口选择全局符号或SFR,并将其拖放到Watches 窗口中。
    使用New Watch 对话框创建新的观察:
    通过使用New Watch 对话框,可以向Watches 窗口中添加符号或SFR:
    • 在Watches 窗口中单击右键并选择“New Watch”或选择Tools>New Watch。单击选择按钮可查看Global Symbols (全局符号)或SFR。在列表中单击某个名
    称,然后单击OK。
    • 在Editor 窗口中选择符号或SFR 名称,然后从右键菜单中选择“New Watch”。
    该名称将填充到窗口中。单击OK。
    要创建新的运行时观察:
    向Watches 窗口中添加运行时观察之前,需要先设置时钟:
    1. 右键单击项目名称,并选择“Properties”。
    2. 单击调试工具名称(例如, REAL ICE),并选择选项类别“Clock”(时钟)。
    3. 设置运行时指令速度。
    要添加全局符号或SFR 作为运行时观察,请按照“使用New Watch 对话框创建新的观察”下的说明操作,只是此时选择“New Runtime Watch”(新建运行时时钟)而不是“New Watch”。
    在运行时观察中使用的符号必须调整长度,使之与器件存储器匹配。也即,使用8 位器件时需要8 位符号。


    要查看符号变化:
    1. 执行调试运行,然后暂停程序。
    2. 单击Watches 选项卡,使窗口处于活动状态。
    3. 对于观察符号,继续调试运行并暂停可查看值的变化。对于运行时观察符号,继续调试运行并在程序执行时观察值的变化。
    只有处于调试会话中,才能看到符号(全局符号、SFR、数组和寄存器位域等)的值。
    要更改观察符号的基数:
    • 右键单击该符号所在的行,并选择“Display Value As”(值的显示方式)

    要查看Variables 窗口,请执行以下操作之一:
    • 选择Window>Debugging>Variables 打开窗口。
    • 如果Output 窗口已打开,则在窗口中单击Variables 选项卡。
    要查看变量变化:
    1. 执行调试运行,然后暂停程序。
    2. 单击Variables 选项卡可查看窗口和局部变量值。
    要更改变量的基数:
    • 右键单击该变量所在的行,并选择“Display Value As”。

               

    给我老师的人工智能教程打call!http://blog.csdn.net/jiangjunshow

    这里写图片描述
    展开全文
  • UAP IDE 代码提示设置

    千次阅读 2015-04-20 09:12:39
    UAP IDE 代码提示设置

    1. uap ide window->preferences->Spket->JavaScript Profiles-> New-> name:MX -> Add Library->选择Common-> 点击ok

    2. 左侧选中Common->Add File->选择 uap ide studio安装目录D:\UAP Studio1.5\eclipse\mx-framework-js目录下的两个文件

    3. 选中第一步新创建的 MX->点击右侧default 设为默认

    4. 选择 General -> Editors-> File Associations -> 选择*.js文件-> 在下面选中 Spket JavaScript Editor-> 点击右侧 Default按钮

       设为默认

    5. 重启 UAP IDE

    展开全文
  • IDE控制台打印代码链接

    千次阅读 2017-08-14 16:44:58
    不过如果是本地调试,比如在IDE里运行项目时,我们希望有种更快捷的方式啦定位代码,就像异常信息的代码链接一样。此方法适用于Eclipse、Idea等一切支持异常输出的IDE代码实践 以下代码是最核心逻辑,可自行扩展...
  • 使用IDE编写python代码

    千次阅读 2015-05-16 15:36:08
    从现在开始,代码的编写将从python默认的IDLE转到新的IDE上,因为我要开始写一些稍具“规模”的代码块了,而不只是在IDLE上的那些小打小闹了。我的第一个python IDE我的第一个python IDE是Eclipse,这个大家可能比较...
  • scalaIDE 与spark2.0 源代码关联

    千次阅读 2016-09-17 19:28:01
    scalaIDE maven方式获取spark2.0 源代码   不安装插件,scalaide的maven新建的是java工程,没法使用scala代码。 因此,必须安装scala ide 的maven插件。   步骤: http://scala-ide.org/docs/tutorials/m2eclipse/...
  • Kafka源代码导入Scala IDE

    千次阅读 2014-12-30 01:50:51
    折腾了一晚,终于在Scala IDE(Eclipse加Sacla插件了)下可以看Apache Kafka工程的源代码了。  我的环境是:win7 32位,Scala IDE:4.0.0,Apache Kafka:0.8.1.1(加了一个0.8.2版本里的gradlew.bat文件) Scala IDE...
  • 文章目录一、简介二、动态效果图三、配置服务器过程3.1、打开配置项3.2、添加SFTP服务器链接3.3、起一个服务器的名字,方便上传3.4、...上传代码到服务器,如果不知道的情况下还用传统的方式上传很麻烦,现在很多IDE...
  • 使用ide编辑pomelo代码

    千次阅读 2015-09-11 15:47:55
    有轻量级的万能代码工具...下面要介绍的是怪兽级的产品,可调试、有提示、还能跳转到require的文件的ide,webstorm,这个下载链接自行百度. 下面介绍如何用webstorm来愉快的编辑代码 1 打开webstorm 2 选择文件
  • Cocos Code IDE扩展代码提示

    千次阅读 2014-10-16 23:50:25
    Cocos Code IDE增加Cocos2d-x2.15代码提示
  • 华为快应用IDE:静态代码检查   代码检查是一种用来确认方案设计和代码实现的质量保证机制,它通过阅读代码来检查源代码与编码规范的符合性以及代码的质量。华为快应用IDE提供对快应用代码的Template、JavaScript...
  • Arduino IDE 无法编辑代码的问题

    千次阅读 2018-12-03 15:04:06
    昨天参加一个活动,开启了好久没用的Arduino IDE,发现代码无法编辑,不论打开旧文档还是新建文档也不行。当时百思不得其解。 晚上回来才想起来,我启用了Arduino IDE的外部编辑器,所以在此选项启用的情况下,是...
  • laravel是目前最火的一门框架 但是其严格的封装也导致 IDE 不能自动识别 所以没有代码提示网上的方法一般是要求用 composer 下载 laravel-ide-helper 但是大多数同学 都没有翻墙的条件 所以很难成功偶然间发现 把 _...
  • 在 Selenium IDE 中进行代码导出

    千次阅读 2020-04-23 01:11:07
    Selenium IDE并没有停滞不前。自去年重新启动以来,Selenium IDE开发人员一直在忙于响应用户增强请求。
  • 在本文中,我们将介绍排名靠前的5个Python IDE和5个Python文本编辑器。...您将在这里学到什么:热门Python IDE和文本编辑器的比较PyCharmSpyderPyDevIDLEWing最佳Python代码编辑器Sublime TextAtomVimVi...
  • arduino IDE中如何实现代码折叠功能

    千次阅读 2017-01-23 09:51:11
    使用编程代码折叠功能可以使得代码阅读时更简洁。那么在arduino IDE中如何实现呢? 这里我们先点击arduino IDE左上角的:文件--首选项 在勾选--启用代码折叠。然后点击界面右下角--“好” 就可以实现代码折叠了...
  • IDE

    千次阅读 多人点赞 2013-11-18 10:50:20
    DE集成开发环境(简称IDE)软件是用于程序开发环境的应用程序,一般包括代码编辑器、编译器、调试器和图形用户界面工具。该程序可以独立运行,也可以和其它程序并用。例如,BASIC语言在微软办公软件中可以使用,可以...
  • IDE代码格式规范化 与 Prettier

    千次阅读 2019-07-18 15:46:19
    idea代码风格 File>Settings > Editor > Code Style idea配置代码自动格式化 Preferences | Language & Frameworks | JavaScript | Code Quality Tools | ESLint->Configuration file ...
  • Scala IDE for Eclipse 解析代码错误

    千次阅读 2016-04-29 14:19:20
    最近遇到了这样的情况,在Scala IDE for Eclipse 中,写的Scala代码,貌似都被eclipse解析成了java代码,显示全部报错,疑惑了很久,每次都是需要重新导入项目工程后就好了,但是保存运行后又会这样 如上图所示...
  • Wing IDE 6.0 算号器注册机代码

    千次阅读 2017-01-16 20:18:37
    我开发Python时喜欢用Wing IDE, 然后最近发现Wing IDE升级到6.0版本了, 但是之前能在5.1上用的算号器代码不能用在6.0上了, 所以就上网搜搜是否有相关算号器, 果然, 找到了代码 首先, 这个代码我是从...
  • [代码阅读] IDE 阅读反编译代码

    千次阅读 2005-06-30 15:30:00
    最近看代码,有部分代码是通过反编译jar而来的,反编译的结果不是很好,大部分代码都有问题不能编译。工程中如果包括这部分源代码,运行时就报出一堆错误,无法运行,只能在工程中暂时去掉,查看时再加入。如此反复...
  • STM32CubeIDE属于一站式工具,那么本文也一站式带你体验:下载安装,配置生成代码,硬件在线调试。 内容已经在我微信公众号『strongerHuang』分享(下面链接),抽空把它搬运到博客来。 STM32CubeIDE教程:...
  • 代码安装mcu8051ide

    千次阅读 2013-07-28 03:59:54
    之前看了几个在在GNU/Linux下的51单片机集成开发环境, mcu8051ide是一个不错的软件,GUI界面是用TCL/TK写的,我个人感觉比QT便捷,且tkgate之类的软件也是用TCL/TK写的,我的机械手仿真软件目前是没有GUI界面的,...
  • 美化Clion:好看的代码颜色和IDE界面

    万次阅读 多人点赞 2019-07-15 11:32:29
    好看的代码主题 github上的一个项目,颜色可以说艳而不俗,媚而不妖,好看的代码主题可以提高写代码的效率, ”少啰嗦,先看东西“: 项目链接:https://github.com/yuhaowow/GeneralConfig 下载该项目,解压到...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 36,569
精华内容 14,627
关键字:

代码ide