Dashboard
All activity
Là một tác phẩm của Evan You ra mắt cùng với Vue 3, Vite được sinh ra như là một sự thay thế cho Webpack. Bài viết này sẽ giới thiệu tới mọi người một combo mới với tốc độ build cực lý nhanh chóng và có thể sử dụng trong lâu dài. Khởi tạo project với Vite npm init @vitejs/app my-project hoặc yarn create @vitejs/app my-project Vite sẽ cung cấp các lựa chọn khi cài đặt như sau: ? Select a template: … ▸...
VueJS viteRAM là một tài nguyên quan trọng trong bất kỳ môi trường phát triển phần mềm nào, nó thậm chí còn có giá trị hơn trên hệ điều hành di động, nơi bộ nhớ vật lý thường bị hạn chế. Mặc dù cả Android Runtime (ART) và máy ảo Dalvik đều thực hiện việc thu thập rác định kỳ, nhưng điều này không có nghĩa là bạn không quan tâm tới thời điểm và vị trí ứng dụng của bạn chiếm dụng và...
Android Android Performance memoryHi All. Ở Phần 1 Chúng ta đã hoàn thiện phần setup panResponder và hôm nay chúng ta sẽ hoàn thiện thêm một vài hiệu ứng để giúp cho ứng dụng chúng ta mượt mà hơn. Vậy những hiệu hứng đó là gì: Khi swipe pannel thực hiện di chuyển lên trên thì sẽ xuất hiện 1 View và làm mờ đi những phần không được swipe pannel che phủ. Khi thực hiện swipe lên đến điểm cao nhất của màn hình và release swipe...
reactnativeGiới thiệu Khi mình mới bắt đầu tìm hiểu về Elasticsearch mình không nghĩ rằng giữa kiểu dữ liệu Text và Keyword có sự khác nhau nhưng khi vào dự án thực tế mình mới nhận ra được sự khác biệt giữa 2 kiểu dữ liệu này. Sự khác biệt giữa 2 kiểu dữ liệu này cũng rất đơn giản nhưng cũng rất quan trọng. Trong bài viết này, mình sẽ nói về sự khác biệt, cách sử dụng 2 kiểu dữ liệu...
Elastic Search ElasticsearchChào các bạn, chắc mọi người đều biết admob của Google rồi nhỉ còn đối với các bạn chưa biết thì đây là một công cụ của Google giúp mình có thể thêm các loại quảng cáo vào trong app của mình. Các loại ads mà Google hỗ trợ: Banner ad. Interstials ad. Rewarded interestitial ad. Rewarded. Native advanced. App open. Trong phạm vi bài viết này mình sẽ nói về Banner ad trước, những loại còn lại sẽ có...
Happy New Year Flutter Google AdmobI> Mở đầu: Để tạo ra 1 Chart, thường mọi người hay chọn Highchart (https://github.com/highcharts/highcharts) hoặc Chartjs(https://www.chartjs.org/) vì nó có độ ổn định và đã được anh em tin tưởng. Hôm nay, mình xin giới thiệu 2 thư viện Chart, mọi người thử xem nó có gì khác so với 2 anh lớn kia nhé. II> Thư viện thứ 1 - tui.chart: Trang chủ : https://ui.toast.com/tui-chart Github :...
HTML CSS Javasscript chart JSMục tiêu Mục tiêu của chúng ta là tạo REST API đơn giản bằng cách sử dụng Amazon API gateway, Lambda và DynamoDB. Chúng ta sẽ thực hiện các request đến end-point API, các request này sẽ được tiếp nhận bằng API gateway. Sau đó, API gateway sẽ chuyển tiếp yêu cầu đến Lambda function. Tại đây, request được xử lý và nó thực hiện các action trên DynamoDB. API là gì ? Theo Redhat , API là một tập hợp các...
dynamodb AWS Lambda AWS API GatewayTưởng tượng rằng có một ứng viên đang chuẩn bị CV để đi phỏng vấn, đã chuẩn bị một tâm hồn đẹp và Mày râu nhẵn nhụi áo quần bảnh bao Ngon rồi, vào chém thôi. Sau khi nhà tuyển dụng hỏi ứng viên một loạt câu hỏi và anh ta trả lời một cách tự tin, ngồi rung đùi cứ đinh ninh nghĩ rằng quả này offer ngon rồi và được hỏi câu tiếp theo: - Em có biết quá trình một trang web...
Happy New Year Rendering BrowserTại sao nên sử dụng SWR? SWR là một thư viện React Hooks dùng trong việc fetch data. Cái tên SWR vốn có nguồn gốc từ stale-while-revalidate, tức là một chiến lược vô hiệu hoá cache được phổ biến bởi HTTP RFC 5861. Đầu tiên, SWR trả về một data từ cache (tức data cũ). Tiếp đó, gửi yêu cầu để fetch (xác nhận lại data) và cuối cùng là cập nhập lại data một lần nữa. Vậy hãy xem SWR sẽ giải...
ReactTrong một dự án thực tế việc chúng ta phải query filter cho các phần search data cho một website là một chức năng thông thường. Vậy làm sao để xây dựng filter một cách hiệu quả dễ mở rộng, thay đổi, tái sử dụng. Trong bài viết này mình sẽ hướng dẫn các bạn query filter trong laravel và nó không thật sự quá khó đâu. 1. Cách làm thông thường public function index(Request $request) { $user =...
Laravel queryfilterLaravel là một trong những khung ứng dụng web open-source hiện đại được sử dụng nhiều nhất, được sử dụng nhiều nhất. Nó cung cấp các tính năng độc đáo như Eloquent ORM, Query builder, Homestead là những tính năng hiện đại, chỉ có trong Laravel. Tôi thích Laravel vì thiết kế kiến trúc độc đáo của nó. Đằng sau Laravel sử dụng các design pattern như Singleton, Factory, Builder, Facade, Strategy,...
Happy New Year Laravel IoCTrong dự án single page hầu hết chúng ta sẽ xử lý form cho vào hết store để tiện cho việc xử lý sau này, thường sẽ liên quan nhiều đến việc validate form, format lại định dang dữ liệu trước khi submit dữ liệu lên server. Mọi việc tưởng chừng rất đơn giản, nhưng khi QA log bug liên quan đến clear form data thì mọi việc trở nên phức tạp hơn rồi Các kiểu log bug của QA thường có 2 dạng, mình xin...
nextjs ReactJS FormData1.Giới thiệu Laravel cung cấp phương pháp dễ dàng tạo dữ liệu mẫu trong database bằng các lớp seed. Nhưng sẽ rất hữu ích nếu bạn có thể nhập số lượng record ưa thích mỗi khi seeder, tức là bạn không hard code or setting .env nữa . Thay vồ đó, bạn chỉ cần nhập số record mỗi khi chạy command, kiểu như thế này: How many books you want to create? 2.Bắt đầu Tạo Factory BookFactory.php trong...
Happy New Year LaravelTiếp nối 2 bài viết trước, trong bài viết này, chúng ta sẽ giúp cho IoC Container có khả năng quản lý các singleton. Nhưng trước khi tiến hành implement tính năng resolve singleton này. Chúng ta phải nâng cấp container để có khả năng resolve class thay vì chỉ là closure như hiện tại. Cụ thể hơn, chúng ta sẽ nâng cấp container để bind một interface cho một implementation. 1. Auto Concrete Resolution Đây chỉ là một...
PHPĐôi lời về FactoryBot gem FactoryBot gem thường được sử dụng khi viết rspec để sử dụng các chiến lược (phương thức) xây dựng model một cách đơn giản. FB cung cấp cho chúng ta 4 phương thức chính là: build, create, attributes_for và build_stubbed. Có thể bạn chưa biết FB và Faker là một cặp đôi hoàn hảo trong việc tạo dữ liệu mẫu cho các model khi viết rspec. Chú ý: Để cho ngắn gọn trong bài mình...
RSpec Beginner RubyonRails factory botMở Đầu Tuần vừa rồi dự án mình làm có chức năng upload file mp3, mp4 kèm theo yêu cầu là lấy luôn thumbnail của file, reseach thấy cũng có nhiều hướng dẫn khác nhau lắm nhưng mình thấy cách sau là ổn áp nhất và bài viết này là mình tổng hợp lại và code demo nho nhỏ tính năng mình vừa làm. Thực hành Chuẩn bị New 1 app, config db tạo thêm model, view, controller và có upload file cơ bản là chắc chắn r...
RubyonRailsNhắc tới Firebase thì không thể không nhắc tới Realtime Database. Đây cũng là dịch vụ trung tâm trong hệ thống các dịch vụ khác của Firebase. Với ưu điểm cực kì lớn là tính realtime được cấu hình và thực hiện sẵn, các lập trình viên chỉ còn mỗi công việc vận dụng các hàm có sẵn để dựng ứng dụng mà thôi. Ở bài viết này mình sẽ giới thiệu sơ lược về Firebase Realtime Database trên...
Happy New YearBài viết được dịch từ bài Flutter: SchedulerBinding vs WidgetsBinding của Jitesh Mohite Đây là một kiến thức khá khó khó vì bạn sẽ không tìm thấy lời giải thích nào tại trang document của Flutter. Vì vậy tôi sẽ chia sẻ một vài kinh nghiệm của bản thân để giúp bạn phần nào phân biệt được chúng Hiện tại có tồn tại 3 loại callback dùng để render widget Transient callback: Được trigger bởi...
FlutterGiới thiệu Là lập trình viên chắc hẳn chúng ta đã nghe về đệ quy, vậy đệ quy là gì? Đệ quy là một mẫu lập trình hữu ích trong các trường hợp khi một tác vụ có thể được chia thành nhiều tác vụ cùng loại, nhưng đơn giản hơn một cách tự nhiên. Hoặc khi một nhiệm vụ có thể được đơn giản hóa thành một hành động dễ dàng cộng với một đối số đơn giản hơn của cùng một...
JavaScript linked list Recursive Function Call StacksIn my previous article, I already introduce to all of about Spree commerce about feature, extention and how to setup it with Ruby on Rails. For this article, i will show to all of you to implementing wishlist product in spree commerce. I. What is Wishlist mean in commerce ? Wishlist is very import feature in commerce website. It allows shoppers to create personalized collections of products they want to buy and save them in their user account for future reference. Wishlists signify a...
@RubyGemCloud Computing (công nghệ điện toán đám mây) là mô hình sử dụng các công nghệ máy tính và phát triển dựa vào mạng Internet. Dịch vụ cloud (điện toán đám mây) cung cấp công nghệ cho các công ty thuê, phục vụ qua kết nối Internet và chỉ phải trả cho những gì họ sử dụng, trái ngược với phương pháp truyền thống là mua phần cứng và phần mềm rồi tự cài đặt và bảo trì. AWS là gì ? AWS...
AWS IAMGiới thiệu Là lập trình viên chắc hẳn chúng ta đã nghe về đệ quy, vậy đệ quy là gì? Đệ quy là một mẫu lập trình hữu ích trong các trường hợp khi một tác vụ có thể được chia thành nhiều tác vụ cùng loại, nhưng đơn giản hơn một cách tự nhiên. Hoặc khi một nhiệm vụ có thể được đơn giản hóa thành một hành động dễ dàng cộng với một đối số đơn giản hơn của cùng một...
JavaScript linked list Recursive Function Call StacksXem thêm : Cài đặt và cấu hình môi trường lập trình PHP trên Ubuntu Gỡ cài đặt package bằng trung tâm phần mềm Không phải ứng dụng nào cũng có thể gỡ cài đặt bằng trung tâm phần mềm. Thường thì các ứng dụng UI hoặc là các ứng dụng được cài từ trung tâm phần mềm mới có thể gỡ cài đặt từ trung tâm phần mềm. Để gỡ cài đặt các ứng dụng này các bạn mở trung tâm phần mềm...
ubuntuI. Giới thiệu Trong hướng dẫn này, mình sẽ trình bày cách thực hiện Đăng nhập Facebook trong Vue 3 với một ứng dụng mẫu cho phép bạn đăng nhập bằng Facebook và xem / cập nhật / xóa tài khoản đã đăng ký trong ứng dụng Vue dựa theo một bài viết của anh Jason. Lần đầu tiên bạn đăng nhập bằng Facebook, một tài khoản sẽ được đăng ký trong ứng dụng Vue bằng id Facebook của bạn để nó có...
VueJS Vue3Introduction I'm developing with Python + Django, but if I'm in charge of multiple projects, the versions of Python, Django, and other libraries will differ depending on the project. In some cases, the same Python version has different versions of different libraries, so versioning with pyenv and venv is very helpful. This time, I will focus on the minimum necessary functions and describe how to use it. Deploy Environment OS:macOS Big Sur(version 11.2.2) Shell...
Basic PythonTrải nghiệm ấn tượng đầu tiên của người dùng là trải nghiệm khởi động ứng dụng. Mỗi mili giây họ chờ đợi ứng dụng của bạn bắt đầu là thời gian quý báu họ có thể dành ở nơi khác. Nếu ứng dụng của bạn có sự truy cập cao và được sử dụng nhiều lần một ngày thì người dùng phải chờ khởi động nhiều lần. Apple khuyến nghị frame đầu tiên được vẽ dưới 400ms. Điều...
Swift1. Design Patterns A Pattern is a Reusable solution that can be applied to commonly occurring problems in Software Engineering. Câu này có thể hiểu đơn giản là: mô hình là một giải pháp có thể tái sử dụng, có thể được áp dụng cho vấn đề thường xảy ra trong kỹ thuật phần mềm. Việc sử dụng tốt Design Patterns sẽ giúp code của bạn ngắn gọn nhiều hơn. Đặc biệt nếu bạn làm việc theo team, mọi người đều...
Happy New YearGiới thiệu Coroutines giờ đã không còn xa lạ với dev android nữa, nhưng liệu chúng ta đã dùng đc hết các công dụng nó mang lại ngoài việc dùng để gọi api với retrofit hay truy cập db với room, nhiều khi chúng ta mới chỉ hiểu nó có tính năng nhưng chưa biết áp dụng vào đâu khi dev Android. Vậy hãy cùng bàn trong bài này nhé. Thực hiện Khái niệm 60fps nghĩa là system sẽ redraw activity mỗi một khoảng...
Android background work CoroutinesI. Giới thiệu Trong quá trình làm việc, chắc hẳn đã nhiều lần chúng ta thấy nhắc đến khái niệm imperative programming (lập trình mệnh lệnh) và declarative programming (lập trình khai báo). Tuy nhiên, liệu các bạn có chắc chắn được câu trả lời cho các câu hỏi: 2 loại lập trình này khác nhau chỗ nào? code mình viết ra là lập trình loại nào?… bài viết này sẽ giúp bạn tự tin hơn khi trả lời cho...
Happy New Year Swift iOS declarative programming imperative programmingTối ưu hóa hiệu suất là một phần phát triển quan trọng mà mọi lập trình viên phải đối mặt Chúng ta không thể có một lượng người dùng lớn nếu như trang web của chúng ta xử lí các tác vụ một cách chậm chạp, hoặc là khi cố gắng điều hướng sang một trang khác trong ứng dụng, người dùng ngay lập tức nhận thấy thời gian tải cao. Tại thời điểm đó, chúng ta biết là cần phải bắt...
Happy New Year JavaScript React dynamic import code splitingFirebase là gì? Đầu tiên, chúng ta hãy cùng xem qua phần Introducing của Firebase đã nhé! Để trả lời cho câu hỏi Firebase là gì thì trước hết chúng ta hãy cùng đi ngược lại những năm 2011, trước khi Firebase ra đời. Tiền thân của nền tảng Firebase chính là Envolve. Envolve đến với người dùng dưới mô hình startup, họ cung cấp cho người dùng những API để dễ dàng tích hợp tính năng chat vào trang...
Happy New Year FirebaseTiếp tục với chủ đề Guildline Settings các module function cơ bản trên Amazon Web Service, sau bài viết hướng dẫn setting SNS thì tiếp đến mình sẽ giới thiệu về về các Management Tools (CloudWatch & CloudTrail) trên AWS 1. CloudWatch 1.1 CloudWatch là gì? Định nghĩa cơ bản CloudWatch là một service cho phép người dùng giám sát hàng loạt các thuộc tính của AWS Account Định nghĩa của AWS Amazon CloudWatch giám...
Amazon Web Services (AWS)Khi mới bắt đầu làm việc với các API trong Flutter, việc phân tích cú pháp JSON thực sự đã khiến tôi phải vật lộn rất nhiều. Và tôi chắc chắn, nó làm rất nhiều bạn mới bắt đầu cũng rơi vào hoàn cảnh như vậy. Ở bài viết này, tôi sẽ giới thiệu cho các bạn một số cách làm việc với json trong Flutter. Ở đây tôi sẽ sử dụng thư viện dart: convert. Đây là phương pháp phân tích cú pháp...
Happy New Year Flutter JSONTiếp tục phần 1, phần này mình sẽ tạo một con node server để connect đến core server và cũng chỉ để hiển thị hello world Node Server Cũng tương tự như phần trước, phần này mình sẽ tạo một folder proto nhưng bên trong nó phức tạp hơn chút vì phải compile proto sang js. Tạo một file package.json ngang cấp với helloworld.proto package.json { "name": "node-server-proto", "version":...
Happy New Year node golang gRPCChào các bạn, lại một tháng nữa trôi qua và mình vẫn lại lên đây để chém gió như mọi khi nữa rồi . Sau khi phần 1 ra lò với biết bao sóng gió thì hôm nay mình sẽ tiếp tục cho lên sóng phần 2 của loạt bài viết về Testing trong Javascript với Jest với hy vọng dùng tấm thân nhỏ bé này để giúp các bạn hiểu thêm về Mr. Jest. Bây giờ hãy cùng tìm hiểu thôi nào các bạn. Testing Asynchronous Code Như...
javascipt Jest Mock asynchronous JestĐặt vấn đề Hiện nay việc sử dụng cấu trúc microservice đã trở nên phổ biến hơn bao giờ hết, và những lợi ích mang lại thì không có gì phải bàn cãi. Mình đang tham gia vào một dự án như vậy và muốn chia sẻ cho các bạn. Bài viết này mình sẽ chia làm 2 phần, và đơn gian thôi là hiện thị mỗi hello world (bài viết được sử dụng tạm các example của grpc nhưng sẽ biến tấu để mình trình...
node golang gRPCReact-hook-form là một thư viện form tiện ích, dễ sử dụng và giúp validation form đơn giản hơn. Hãy cùng tìm hiểu cách sử dụng react-hook-form trong project như thế nào nhé. Cài đặt Với npm: npm i react-hook-form Nếu dùng yarn: yarn add react-hook-form Sau khi cài đặt xong, ta tạo một form đăng ký user với username, email, password để thực hành luôn nhé import React from "react"; const styles = { container: { ...
React react-hook-form formReact-hook-form là một thư viện form tiện ích, dễ sử dụng và giúp validation form đơn giản hơn. Hãy cùng tìm hiểu cách sử dụng react-hook-form trong project như thế nào nhé. Cài đặt Với npm: npm i react-hook-form Nếu dùng yarn: yarn add react-hook-form Sau khi cài đặt xong, ta tạo một form đăng ký user với username, email, password để thực hành luôn nhé import React from "react"; const styles = { container: { ...
react-hook-formBạn đã bao giờ muốn học Vim, nhưng không chắc chắn cách bắt đầu? Không vấn đề gì. Đây sẽ là bài viết hướng dẫn bạn cách sử dụng Vim và nơi bắt đầu sử dụng trình soạn thảo văn bản tốt nhất thế giới. Lưu ý rằng đây là một bài viết rõ ràng dành cho những người mới bắt đầu sử dụng Vim. Nếu bạn đã sử dụng Vim một thời gian, tất cả những điều này sẽ trông hoàn toàn...
hướng dẫn dùng vim câu lệnh cơ bản trong vim cách dùng vim vim là gì VimLời mở đầu Dưới đây là một số kiến thức cơ bản mà mình đã tìm hiểu được trên con đường tìm hiểu API nó là cái gì Rất mong nhận được góp ý của mọi người! API là gì Về mặt kỹ thuật, API là viết tắt của Giao diện lập trình ứng dụng (Application Programming Interface). API là một trung gian phần mềm cho phép hai ứng dụng giao tiếp với nhau, có thể sử dụng cho web-based system,...
APIKhi học qua Redux có thể bạn đã từng nghe "giữ state đơn giản nhất, và sử dụng nó khi cần', một phần trong bài học đó bạn cũng có thể đã sử dụng đến redux selector. Một selector function nhận vào input là state và trả về một giá trị mong muốn dựa trên state đó. ví dụ const selectEntities = state => state.entities; function selectItemIds(state) { return state.items.map(item => item.id); } const...
Happy New Year React-Redux ReselectKhi làm việc với Git CLI, chúng ta thường gõ rất nhiều lệnh dài dòng và lặp đi lặp lại. Tuy nhiên, Git có hỗ trợ Alias nên nó rất hữu ích và tiết kiệm thời gian gõ giúp chúng ta tăng năng suất cũng như hiệu quả công việc. Git Alias là gì ? alias (noun): bí danh, tên hiệu, biệt hiệu. Về cơ bản Git Alias cung cấp khả năng lưu một lệnh với một tên khác (có thể ngắn hơn hay dài hơn) Cách thêm...
GitTrước đây khi còn là sinh viên, với một người học công nghệ thông tin nên tôi được nghe nhiều về nghề Tester. Nhưng ở thời điểm đó, tất cả những gì tôi biết về nghề chỉ là lý thuyết thông qua thông tin báo mạng hoặc nghe các anh chị, thầy cô khoá trên kể lại Khi làm luận án tốt nghiệp, tôi cũng chọn đề tài testing để chiến đấu. Và như để giải đáp được câu hỏi và hiểu...
TestingVới các bạn đã làm việc với javascript thì sẽ thường xuyên làm việc với các package manager như npm, yarn. Trong bài viết lần này mình sẽ giới thiệu với các bạn về một package mannager có tốc độ đáng kể so với các package managerkhác là pnpm. Bắt đầu nào PNPM là gì? PNPM là package manager cho javascript tương tự như npm, yarn, cung cấp những cải tiến đáng kể về tốc độ và sử dụng dung lượng...
Happy New Year PNPMDạo này ăn dầm nằm dề với "nàng" React nhiều quá, lắm khi không ngóc đầu lên được. Ông bà ta có câu "Chán cơm thèm phở", nên lang thang trên các blog để mong tìm được 1 chút thú vui khác React đã khá quen thuộc, thì vô tình thấy một frameworkJS là MithrilJS, tuy nó chưa quá nổi tiếng trên cộng đồng Frontend, nhưng đọc lướt qua phần giới thiệu lại thấy khá ấn tượng... 1....
Happy New Year Front-end JavaScriptIntro Trong bài viết sẽ giới thiệu về cách sử dụng Retrofit trong spring boot kotlin. Requirement IDEA 2020.3 Docker 19.xx docker-compose 1.28.x external api resource ở đây được viết bằng golang bạn có thể tham khảo ở bài viết https://viblo.asia/p/restful-web-api-crud-using-gorm-in-golang-4P856nRA5Y3 Spring boot Kotlin setup Các bạn có thể khởi tạo bằng 2 cách: Tham khảo bài viết trước Spring boot Kotlin Auto Build on Docker...
Retrofit2 kotlin spring bootECMAScript 2015 (còn được gọi là ES6) là một bản cập nhật lớn cho Javascript kể từ ES5, được chuẩn hóa vào năm 2009. Kể từ đó, Javascript đã đưa ra các bản cập nhật gia tăng hàng năm. Các bản cập nhật từ ES6 trở lên thường được gọi là Javascript hiện đại. Hôm nay chúng ta hãy xem javascript mới có những cái gì? Ký tự Các ký tự cho phép nhúng các biểu thức vào chuỗi với cú pháp rõ...
JavaScriptHôm nay mình sẽ huớng dẫn các bạn làm hiệu ứng này: Đầu tiên các bạn có thể tạo 1 project mới, sau đó tạo 1 node2D có ColorRect như sau: Thêm shader vào ColorRect, nếu như các bạn không biết thêm có thể quay lại các bài cũ của mình để xem chi tiết cách tạo shader : Sau khi tạo xong thì sẽ có như thế này: Mình sẽ tạo 1 biến progress để kiểm soát việc chạy animation cho hiệu ứng này, giá trị...
Shader GodotGiới thiệu Để phát triển web hoặc phát triển đa nền tảng, JavaScript đang trở nên phổ biến rộng rãi. Trước đây nó chỉ được coi là một ngôn ngữ kịch bản front-end nhưng giờ đây nó cũng trở nên phổ biến với tư cách là back-end. Ngay cả Facebook’s React Native cũng dựa trên JavaScript. Do đó, chắc chắn sẽ rất hữu ích nếu biết một số thủ thuật trong JavaScript không chỉ ngăn chúng ta viết...
Happy New Year JavaScript Tips TricksĐây là bài dịch từ trang medium.com. Mời các bạn xem bài gốc tại đây: https://medium.com/swlh/swiftplantuml-aee34c5f84ea Tôi thường xuyên làm việc với các dự án phần mềm được viết bằng Swift và tôi thường hay phải tạo sơ đồ dựa trên tiền đề của mã nguồn hiện có, cho mục đích tài liệu hoặc để giải thích các khái niệm thiết kế hệ thống. UML như một ngôn ngữ mô hình hóa có mục đích...
tool class diagram PlantUMLSubscribe to your news feed