Cấu trúc dự án API REST từ lv1 đến lv4 | APIStructure Your Nodejs REST API for beginner to Advanced

  Рет қаралды 16,984

Tips Javascript

Tips Javascript

Күн бұрын

Пікірлер: 80
@math-ezdew
@math-ezdew 11 ай бұрын
a có video triển khai các structure này chưa ạ
@anonystick
@anonystick 11 ай бұрын
Trong hội viên nha em
@locit9046
@locit9046 Жыл бұрын
cảm ơn anh ạ , chúc anh nhiều sức khỏe , video rất hay ạ
@PhuocNguyen-cu1lz
@PhuocNguyen-cu1lz Ай бұрын
E thấy level xxx quản lý tập trung, đỡ phải navigate tìm file nhiều ạ 😊
@thanhnienchuyencan
@thanhnienchuyencan 2 жыл бұрын
rất cảm ơn bác, video rất giá trị
@anonystick
@anonystick 2 жыл бұрын
cảm ơn sự phản hồi của bạn!
@nguyenminhtuan2632
@nguyenminhtuan2632 2 жыл бұрын
Cháu cảm ơn video chia sẻ của chú ạ
@anonystick
@anonystick 2 жыл бұрын
Cảm ơn vì những comment tích cực ở em.
@minhtaile3572
@minhtaile3572 2 жыл бұрын
kiến thức hiếm có khó tìm, cảm ơn anh rất nhiều.
@anonystick
@anonystick 2 жыл бұрын
Cảm ơn em nhiều. Chúc sức khỏe... Có gì cần yêu cầu thì post lên nha.
@ICOReviewtoken
@ICOReviewtoken 2 жыл бұрын
Ad hướng dẫn bằng typescript đi
@anonystick
@anonystick 2 жыл бұрын
Cũng giống nhau mà Hub! Nghe tên Hub khoái khoái.. kkk
@NguyenMinh-gl7qz
@NguyenMinh-gl7qz Жыл бұрын
Đáp ứng hệ thống lớn hoặc level cao thì em nghĩ cứ theo domain driven design thôi, phân tích cái boundary context rồi chia hết thành các domain, bên trong domain thì đủ các thứ như entity (thường thấy cái này thay cho model hoặc đặt tên là model cũng được), repositories, aggregates, actions, value object, DTO, controller Còn nếu có cái gì liên quan đến hạ tầng thì quẳng vào infrastructure ví dụ như xử lý log, cache, customize lại ORM, Request, Response, migration, Security, Migration
@anonystick
@anonystick Жыл бұрын
cảm ơn em một góc nhìn hen
@sevenup139
@sevenup139 Жыл бұрын
mình xin cấu trúc src theo DDD được ko bạn?
@hongdungnguyen634
@hongdungnguyen634 Жыл бұрын
cấu trúc level3 và level-xxx không thấy folder routes ở đâu vậy ạ?
@KTKaiGer
@KTKaiGer 2 жыл бұрын
Anh làm thêm video về TS đc k ạ
@anonystick
@anonystick 2 жыл бұрын
Nó cũng giống nhau mà em!
@binhlethanh4121
@binhlethanh4121 2 жыл бұрын
Thầy ơi có khóa học dạy online không ạ. cho em thông tin đăng ký với ạ.
@anonystick
@anonystick 2 жыл бұрын
Không cần online đâu em. Cứ làm một ứng dụng thực tế, khó gì hỏi qua tôi. Tôi giúp.
@baobaostore
@baobaostore 2 жыл бұрын
service package khác gì model package vây ạ?
@anonystick
@anonystick 2 жыл бұрын
Khác em à. Model là ánh xạ của db. Còn services là logic. Video sau anh sẽ giải thích rõ hơn.
@nhattranminh7814
@nhattranminh7814 2 жыл бұрын
Chỗ tách 2 file app và server thì anh thích đặt đoạn config mongoose ở đâu ạ
@anonystick
@anonystick 2 жыл бұрын
App nha em
@sonlamnguyen1118
@sonlamnguyen1118 2 жыл бұрын
Cấu trúc cuối của chú giống trong dự án front-end Angular ha .....thanks chú
@anonystick
@anonystick 2 жыл бұрын
Hiện tại phía BE, thấy cũng dần dần thay đổi như FE. Mà thấy hay hơn nhỉ?
@sonlamnguyen1118
@sonlamnguyen1118 2 жыл бұрын
@@anonystick không biết người khác thế nào nhưng e mới vào nghề join dự án FE rất dễ hiểu cấu trúc và mò tới thứ mình cần cũng nhanh ạ
@anonystick
@anonystick 2 жыл бұрын
@@sonlamnguyen1118 Uhm, thật ra Anh cũng thích theo level-xxx như video khi làm cho cá nhân Anh or dự án nhỏ.
@minhphongvn9216
@minhphongvn9216 2 жыл бұрын
level cuối em cũng rất thích. nhìn khá giống nestjs. cảm ơn anh đã chia sẻ những kiến thức thực tiễn khó tìm. hóng video về các mô hình của anh ạ
@phunguyentrong722
@phunguyentrong722 9 ай бұрын
không biết có phải mô hình DDD không nhỉ
@tuynpham308
@tuynpham308 2 жыл бұрын
Đúng là những thứ khó mà kiếm được ở youtube , cảm ơn anh mặc dù em chỉ đáng tuổi cháu nhưng em vẫn muốn gọi là anh hơn 😚
@anonystick
@anonystick 2 жыл бұрын
Tks em nhiều nhé. Ủng hộ và cố gắng code lại nếu rảnh nha em
@tranphat3551
@tranphat3551 2 жыл бұрын
level-xxx cái structure đó tên tiếng anh của nó là gì v a
@anonystick
@anonystick 2 жыл бұрын
Là của anh thôi. Hihi
@kidqn
@kidqn 2 жыл бұрын
xin tên hero Dota2 yêu thích nhất của a :D
@anonystick
@anonystick 2 жыл бұрын
Sniper và WD kakaka. Còn em?
@kidqn
@kidqn 2 жыл бұрын
@@anonystick night stalker, void spirit :))
@angVanHuy-tf2rv
@angVanHuy-tf2rv 2 жыл бұрын
a sắp ra video có ví dụ chi tiết chưa
@anonystick
@anonystick 2 жыл бұрын
Có video về routes đó em
@kidqn
@kidqn 2 жыл бұрын
Có 2 cách chia phổ biến cũng như 2 xu hướng sở thích của ae khi chia cấu trúc: 1. Chia theo loại (nhiều người thích) ví dụ components, controllers, services, gom hết bỏ vào đó. Trực quan dễ nhìn 2. chia theo modules, 1 module sẽ có services, components, controllers,...: cái này ưu điểm import sẽ ngắn vào ngay đó lun, unit test dễ chạy (nghe nói vậy). Chỉ điều mới nhìn sẽ không quen. Tưởng tượng edit 2 services ở 2 modules khác nhau, khi explorer view sẽ bị dài hơn
@baole2691
@baole2691 2 жыл бұрын
hóng video triển khai router team size lớn . thanks a trước
@nguyenvohoanglong3898
@nguyenvohoanglong3898 Жыл бұрын
version chia theo module dễ làm với các dự án cá nhân và tiện lợi để clone sang các dự án khác có cùng module đó. Thanks a
@anonystick
@anonystick Жыл бұрын
Cảm ơn em
@alam8044
@alam8044 2 жыл бұрын
Cảm ơn anh đã chia sẽ kiến thức hữu ích, sẵn em có 1 vài thắc mắc mong a giải đáp ạ. Việc chia ra các version thì có chứa mục đích là mong muốn hệ thống api của mình sau khi release version mới, các version cũ trước đó vẫn dc sử dụng? Khi mình áp dụng mô hình kiểu này vào api, có phải là cả 3 version api cũng kết nối đến chung 1 database? Nếu như vậy trong version tiếp theo khi api release ra mà có 1 tính năng nào đó cần phải thay đổi cấu trúc table của database thì những version trước đó sẽ bị ảnh hưởng?
@anonystick
@anonystick 2 жыл бұрын
1 - Nếu như vậy trong version tiếp theo khi api release ra mà có 1 tính năng nào đó cần phải thay đổi cấu trúc table của database thì những version trước đó sẽ bị ảnh hưởng? Rep: Tất nhiên sẽ bị ảnh hưởng chứ. v2 ra đời không có nghĩa là v1 phải lập tức OFF, phải có thông báo cho CUSTOMERS. Còn về database thì cố gắng tốt nhất không thay đổi về response. Còn đương nhiên là phải thay đổi rồi. Có nhiều cách để làm việc với trường hợp này... Cái này đi sâu hơn đó em.
@nguyen-van-quang
@nguyen-van-quang 2 жыл бұрын
@@anonystick theo em nghĩ nên có một thư mục chứa code cho việc migration từ v(n) lên v(n+1). Công việc migration ít hay nhiều phụ thuộc vào việc chúng ta thiết kế db ban đầu chuẩn đến đâu. Anh nghĩ sao về ý kiến này? Thanks anh :D
@anonystick
@anonystick 2 жыл бұрын
@@nguyen-van-quang Chốt, thêm vào luôn đi em :)
@cnv1851
@cnv1851 2 жыл бұрын
Ad cho em hỏi nếu dự án cần build theo kiến trúc micro service thì nên dùng Express hay NestJs ạ? Many thanks
@anonystick
@anonystick 2 жыл бұрын
Cái này thì tùy nha bạn. Mình thì già rồi, cái gì quen thuộc và nó vẫn đảm bảo nhanh, bảo mật... Thì mình vẫn tiếp tục nắm giữ. NestJS mang đến làn gió mới, nếu quen thuộc với NestJS thì chứ chiến nha bạn.
@cnv1851
@cnv1851 2 жыл бұрын
@@anonystick Thanks anh nhiều nh
@HaiNguyen-wh6gc
@HaiNguyen-wh6gc 2 жыл бұрын
6:30 Đối với sql thì trong folder models nên chứa gì vậy a? Vì nó không có schema các thứ như của mongo, e đọc 1 số nguồn thì người ta bảo có thể để các function truy vấn trong đấy
@HungNguyen-ny7fp
@HungNguyen-ny7fp 2 жыл бұрын
giọng của a giống a Demon Warlock mà ngày xưa e học trong cd PHP quá, ko biết có phải là a ko?
@anonystick
@anonystick 2 жыл бұрын
Không phải... Cảm ơn bạn!
@CodeNeverDie
@CodeNeverDie 2 жыл бұрын
anh cho em hỏi là: - phần chia version em nghĩ thay vì để như anh thì em chia theo branch trên git được không nhề: ví dụ: v1 thì có branch v1 để phát triển, v2 có branch v2, version mới nhất và ổn định thì để ở main branch. - thêm cái level-xxx của anh nó gọi là chia theo module đúng không anh, em thấy cách chia giống với nestjs
@anonystick
@anonystick 2 жыл бұрын
Git thì khác, khi thêm một branch thì đa số chỉ là một funciton hay lơn hơn là issue, khi merge xong thì xóa... Còn folder là đi theo nha em. Nên tồn tại ở hai thứ. - nestjs hơi đúng đấy em. Anh thấy level-xxx hiện tại trông nhiều người sử dụng vì thấy nó rất tổng quan.
@thiengnguyenhuu653
@thiengnguyenhuu653 2 жыл бұрын
- Anh cho e hỏi nếu chia theo version như vậy thì v1 và v2 đều trỏ vô cùng 1 controller luôn hay mình chia controller theo version luôn ạ. - Nếu trỏ vô cùng 1 controller thì việc đặt tên function cho cùng 1 chức năng của 2 version sẽ như thế nào ạ - vd: đặt như vậy có tường minh không ạ + v1: getListCustomer() + v2: getListCustomerV2() mong được anh giải đáp. Thanks anh
@anonystick
@anonystick 2 жыл бұрын
Chia ra rồi thì không chung nhé em. Nguyên tắc ko dc phá vỡ
@thiengnguyenhuu653
@thiengnguyenhuu653 2 жыл бұрын
@@anonystick vậy phải tạo 1 controlerV2 hả anh
@tranthanhbao9978
@tranthanhbao9978 2 жыл бұрын
1.Sao ko nhập Service với controller vậy bạn , cả 2 đều là glue code trước khi vào model thôi mà ? 2.Làm sao để control models nhìu bảng ( phần model chỉ là data mapper với bảng thông qua orm ). Vậy nếu cỡ vài chục tới 100 bảng, mỗi bảng 20-30 cột trở lên thì ngồi edit các file models có vẻ bất khả thi -> Các bước bác thực thi việc migration như nào ? Mong dc bác chia sẽ
@KhangNguyen-kq2iw
@KhangNguyen-kq2iw 2 жыл бұрын
càng xem càng nghiện content của kênh, anh có thể chỉ em cách cai đc k ạ haha
@mykun8737
@mykun8737 2 жыл бұрын
em chào anh anh làm clip để hiểu thực sự module stream trong node js được ko ạ
@anonystick
@anonystick 2 жыл бұрын
Stream không phải là một khái niệm dành riêng cho Node.js đâu nha Hoàng. Chúng đã được giới thiệu trong hệ điều hành Unix lâu rồi, về IO nếu em chưa quen thì anh sắp xếp giải thích cho hén.
@mykun8737
@mykun8737 2 жыл бұрын
@@anonystick em đang thắc mắc ở chỗ cái luồng data trong stream, với luồng data trong stream thì khi data đến chảy từ server tới client, thì data có chảy liên tục không ạ? từ liên tục ý em là client nó ko ôm hết data, mà ông server cứ gửi data liên tục mãi mãi, ví dụ khi chạy video
@mykun8737
@mykun8737 2 жыл бұрын
@@anonystick kzbin.info/www/bejne/p4abgaCQhLShl8U&ab_channel=WebDevJourney
@mykun8737
@mykun8737 2 жыл бұрын
e xem clip này thấy họ chứng minh với stream data chảy liên tục, nhưng vấn đề là em có kiểm tra stream, khi gửi data thì 1 tệp tin tới 1 tệp tin khác, thì data chảy vào output xong dừng luôn, nó lại khác khi data chảy vào trình duyệt ạ?
@anonystick
@anonystick 2 жыл бұрын
@@mykun8737 Uhm em, nhờ stream nên Anh em mình xem phim nó load nhanh đấy. Chứ hồi xưa chờ load một đoạn rồi mới xem... kkk
@dungam9402
@dungam9402 2 жыл бұрын
hay lắm anh
@anonystick
@anonystick 2 жыл бұрын
cảm ơn Dũng. Ủng hộ kênh nha em.
@dacdoanvan1633
@dacdoanvan1633 2 жыл бұрын
cám ơn anh vì video, e đoán a chắc cũng đứng tuổi rồi, mạnh dạn đoán anh chắc cũng level Solution Architecture rồi ấy chứ
@gingil6336
@gingil6336 2 жыл бұрын
cảm ơn anh, những video của anh đặc biệt hay và hữu ích. Em chỉ góp ý chút là, nếu có thời gian anh nên tra lại phiên âm 1 số từ tiếng anh. Ví dụ fetch api anh phát âm giống fake api quá :D
@anonystick
@anonystick 2 жыл бұрын
Uhm, tks em. Tôi sẽ cố gắng.
@truonghung9618
@truonghung9618 2 жыл бұрын
giống cấu trúc nestjs nhỉ
@monglevan7681
@monglevan7681 2 жыл бұрын
Hơi ngoài tý! Con a mấy tuổi rồi thế :)
@anonystick
@anonystick 2 жыл бұрын
Nhóc đầu 10 tuổi, hai nhóc sau 3 vs 5. Hi hi
@duynguyencong5849
@duynguyencong5849 2 жыл бұрын
Hi anh @Tips Javascript, Em cảm ơn anh, video rất hay và rất bổ ích. Em rất thích cách phân chia folder structure của level-xxx, rất giống với cách phân chia của Nest.js. Theo quan điểm của em thì cách chia này phù hợp với dự án lớn, phân chia thành các Module, việc này giúp phân chia task dễ dàng hơn khi làm việc với nhiều người. Ngoài ra, anh cho em hỏi là anh có sử dụng môi trường command line và Vim để build các dự án full-stack (Express, Mongoose, MongoDB, React hoặc Express, Sequelize, Postgress, React) không ạ? Chúc anh nhiều sức khỏe và ra nhiều video ý nghĩa.
@heothy102
@heothy102 2 жыл бұрын
Đúng là y chang nest.js ,
@ThaiNguyen-gg8xj
@ThaiNguyen-gg8xj 2 жыл бұрын
Mong anh làm về logging level và hệ thống logging trong project ạ.
@kevintuan8276
@kevintuan8276 2 жыл бұрын
Anh ra ví dụ chi tiết đi anh
Гениальное изобретение из обычного стаканчика!
00:31
Лютая физика | Олимпиадная физика
Рет қаралды 4,8 МЛН
СИНИЙ ИНЕЙ УЖЕ ВЫШЕЛ!❄️
01:01
DO$HIK
Рет қаралды 3,3 МЛН
Quilt Challenge, No Skills, Just Luck#Funnyfamily #Partygames #Funny
00:32
Family Games Media
Рет қаралды 55 МЛН
Гениальное изобретение из обычного стаканчика!
00:31
Лютая физика | Олимпиадная физика
Рет қаралды 4,8 МЛН