“由企業級工程師開發的Angular + NodeJS(Typescript)框架!”
首先
好久不见,这是我很久以来的一次发布。
这篇文章已经在GitHub上公开了,链接为https://github.com/tsunaki00/GAUSS-Framework-Angular。
由於這次我們公開了在內部使用的Web框架,所以我想寫一下相關的說明。
以前,我在一家大型製造企業擔任系統架構師,負責開發框架相關的工作。
我在使用Twitter。请关注我。
我們使用人工智能運營著競馬預測應用程式SIVA。
我們會在體育報紙的頭版上刊登預測結果。
为了什么
我們的目標如下:
(1) 確保程式品質(標準化)
(2) 平衡開發者的技能水平
(3) 建立一套能在企業系統中快速掌握面向對象程式設計的概念的能力
背景(问题)
(1) 每次开始案件都必须选择架构。
※ 选择范围太广而难以选择(全栈开发)。
(2) 跟上快速发展的程序很困难。
(3) 从企业背景中来做过强大系统的人很多不擅长JavaScript。
※ 补充
通过利用这个框架,即使是没有编程经验的人也能轻松地进行服务开发。
如果您有兴趣,请务必尝试使用!
前提是指在讨论或行动之前必须满足的条件或假设。
GAUSS框架将作为GAUSS内部Web系统开发的共同基础设施来利用。
这次将解释前端架构。
◇ GAUSS Framework的内容
・前端(Angular6)
・后端(Nest5)
后端的开发可以使用Swagger进行开发。
※我们已经准备了关系型数据库和非关系型数据库。
◇ 开发目标人员(必备技能)]
・HTML5
・CSS3(sass)
・Javascript(ECMAScript 6~)
※什么是框架?
框架是指将常用功能整合并提供给应用程序开发时常常所需的软件,可以作为应用程序的基础功能。最初的意思是指框架、底层构想、结构、组织等概念的英语单词。
框架是应用程序的模板,在开发中使用它可以显著提高效率。
整个框架的概览
GAUSS框架采用Angular作为客户端处理,并以nest为基础构建服务器处理。
每个组件的主要行为
看+一下
View是一个层,用于显示静态信息,如HTML和图像,并从Model中获取并显示相关数据。
View的作用是仅描述布局。描述方法使用HTML和Directive。
※1 禁止在行内实现JavaScript,CSS。
※2 Directive(指令)是…
在Angular中有以下三种指令:
– 组件(Component)——带有模板的指令
– 结构指令(Structural directives)——用于添加或删除DOM元素以改变DOM布局的指令
– 属性指令(Attribute directives)——用于改变其他指令的外观或行为的指令
控制器
控制器的角色是设置范围,根据用户的操作调用模型的方法等进行处理。
将服务调用与作用域相关联
将模型事件通知与作用域相关联
在控制器中编写演示逻辑
※ 尽量简化,将业务逻辑写在模型中
模型
Model负责处理与演示无关的所有部分。
– 业务逻辑
– 数据容器
– 与服务器端的通信处理
– 本地存储处理
目录结构
搭建框架环境步骤
任务内容
・STEP 1.事前準備
→ 必用なミドルウェアをインストール
・STEP 2.実行環境の構築(Frontend)
→ プログラムの取得から実行環境の構築、アプリケーションの起動
・STEP 3.実行環境の構築(Backend)
→ プログラムの取得から実行環境の構築、アプリケーションの起動
必须安装必要的中间件(Docker)。
请从以下网站下载安装包,并按照步骤进行安装。(如果已经安装请忽略)
第2步:建立执行环境(前端)
从代码库中获取程序。
(1) 在终端中运行以下命令来获取程序。
$ git clone https://github.com/tsunaki00/GAUSS-Framework-Angular.git
$ cd GAUSS-Framework-NoSQL
(2)请在终端中运行以下命令来获取程序。
(第一次运行可能需要花费一些时间)
$ docker-compose up -d
:
:
Starting gaussframeworknosql_frontend_1 ... done
Starting gaussframeworknosql_mongodb_1 ... done
Starting gaussframeworknosql_mongo-express_1 ... done
Starting gaussframeworknosql_backend_1 ... done
Starting gaussframeworknosql_nginx_1 ... done
执行以下命令,登录到docker容器中。
$ docker exec -it gaussframeworknosql_frontend_1 sh
app #
※ 根据设置获取 Docker 主机名(使用 docker-compose 来绑定会更方便)。
(4) 登录Docker后,运行以下命令来安装软件包。
/app # yarn install
yarn install v1.6.0
[1/4] Resolving packages...
[2/4] Fetching packages...
info fsevents@1.2.4: The platform "linux" is incompatible with this module.
info "fsevents@1.2.4" is an optional dependency and failed compatibility check. Excluding it from installation.
[3/4] Linking dependencies...
warning " > bootstrap@4.1.1" has unmet peer dependency "jquery@1.9.1 - 3".
warning " > bootstrap@4.1.1" has unmet peer dependency "popper.js@^1.14.3".
warning "ngx-tags-input > @angular/common@5.2.11" has incorrect peer dependency "rxjs@^5.5.0".
warning "ngx-tags-input > @angular/core@5.2.11" has incorrect peer dependency "rxjs@^5.5.0".
warning "ngx-tags-input > @angular/forms@5.2.11" has incorrect peer dependency "rxjs@^5.5.0".
warning "ngx-tags-input > @angular/forms@5.2.11" has incorrect peer dependency "@angular/platform-browser@5.2.11".
warning " > karma-jasmine-html-reporter@1.1.0" has unmet peer dependency "jasmine@>=3".
[4/4] Building fresh packages...
Done in 151.28s.
/app #
执行以下命令以启动应用程序服务器。
/app # yarn start
yarn run v1.6.0
:chunk main main.js, main.js.map (main) 69 kB [initial] [rendered]chunk
polyfills polyfills.js, polyfills.js.map (polyfills) 227 kB [initial] [rendered]chunk runtime runtime.js, runtime.js.map (runtime) 5.22 kB [entry]
[rendered]chunk scripts scripts.js, scripts.js.map (scripts) 2.4 MB
[rendered]chunk styles styles.js, styles.js.map (styles) 419 kB [initial] [rendered]chunk vendor vendor.js, vendor.js.map (vendor) 7.5 MB [initial] [rendered]ℹ 「wdm」: Compiled successfully.
第三步 配置执行环境(后端)
后端支持Swagger开发。
(1) 执行以下命令,以登录到Docker容器中。
$ docker exec -it gaussframeworknosql_backend_1 sh
app #
(4)在登录Docker后,执行以下命令以安装包。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/52867/af4572c4-2aaf-3b0b-7e64-6b868203f6ee.png)
/app # yarn install
yarn install v1.6.0
[1/4] Resolving packages...
[2/4] Fetching packages...
info fsevents@1.2.4: The platform "linux" is incompatible with this module.
info "fsevents@1.2.4" is an optional dependency and failed compatibility check. Excluding it from installation.
[3/4] Linking dependencies...
warning " > bootstrap@4.1.1" has unmet peer dependency "jquery@1.9.1 - 3".
warning " > bootstrap@4.1.1" has unmet peer dependency "popper.js@^1.14.3".
warning "ngx-tags-input > @angular/common@5.2.11" has incorrect peer dependency "rxjs@^5.5.0".
warning "ngx-tags-input > @angular/core@5.2.11" has incorrect peer dependency "rxjs@^5.5.0".
warning "ngx-tags-input > @angular/forms@5.2.11" has incorrect peer dependency "rxjs@^5.5.0".
warning "ngx-tags-input > @angular/forms@5.2.11" has incorrect peer dependency "@angular/platform-browser@5.2.11".
warning " > karma-jasmine-html-reporter@1.1.0" has unmet peer dependency "jasmine@>=3".
[4/4] Building fresh packages...
Done in 151.28s.
/app #
执行以下命令将应用程序服务器启动。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/52867/37f42ff5-accb-35a4-523b-bbd78db9ad3d.png)
/app # yarn start
yarn run v1.6.0
:chunk main main.js, main.js.map (main) 69 kB [initial] [rendered]chunk
polyfills polyfills.js, polyfills.js.map (polyfills) 227 kB [initial] [rendered]chunk runtime runtime.js, runtime.js.map (runtime) 5.22 kB [entry]
[rendered]chunk scripts scripts.js, scripts.js.map (scripts) 2.4 MB
[rendered]chunk styles styles.js, styles.js.map (styles) 419 kB [initial] [rendered]chunk vendor vendor.js, vendor.js.map (vendor) 7.5 MB [initial] [rendered]ℹ 「wdm」: Compiled successfully.
(6) 请确保启动成功
在浏览器(Google Chrome)的地址栏中输入”http://localhost:3001/api”并访问。
最后的
请务必使用提供的教程,以便在启动后创建Todo应用程序。请尽情利用。
我在使用Twitter,请关注我。
我正在使用人工智能来运营赛马预测SIVA。
我们会在体育新闻的头版上发布预测结果。