1. Trang chủ
  2. » Công Nghệ Thông Tin

xây dựng công cụ trên web hỗ trợ tìm lỗi ứng dụng c/c++

109 118 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 109
Dung lượng 1,64 MB

Nội dung

TR NG I H C KHOA H C T NHIÊN KHOA CÔNG NGH THÔNG TIN B MÔN CÔNG NGH PH N M M NGUY N ÌNH V NH AN NGUYÊN KHA XÂY D NG CÔNG C TRÊN WEB H TR TÌM L I NG D NG C/C++ KHÓA LU N T T NGHI P C TP HCM, 2012 NHÂN CNTT TR NG I H C KHOA H C T NHIÊN KHOA CÔNG NGH THÔNG TIN B MÔN CÔNG NGH PH N M M NGUY N ÌNH V NH AN - 0812015 NGUYÊN KHA - 0812213 XÂY D NG CÔNG C TRÊN WEB H TR TÌM L I NG D NG C/C++ KHÓA LU N T T NGHI P C GIÁO VIÊN H NHÂN CNTT NG D N PGS.TS TR N AN TH KHÓA 2008 – 2012 NH N XÉT C A GIÁO VIÊN H NG D N ……………………………………………………………………………………… ……………………………………………………………………………………… ……………………………………………………………………………………… ……………………………………………………………………………………… ……………………………………………………………………………………… ……………………………………………………………………………………… ……………………………………………………………………………………… ……………………………………………………………………………………… ……………………………………………………………………………………… ……………………………………………………………………………………… ……………………………………………………………………………………… ……………………………………………………………………………………… ……………………………………………………………………………………… ……………………………………………………………………………………… ……………………………………………………………………………………… ……………………………………………………………………………………… ……………………………………………………………………………………… ……………………………………………………………………………………… TP H Chí Minh, ngày … tháng …… n m 2012 Giáo viên h i ng d n NH N XÉT C A GIÁO VIÊN PH N BI N ……………………………………………………………………………………… ……………………………………………………………………………………… ……………………………………………………………………………………… ……………………………………………………………………………………… ……………………………………………………………………………………… ……………………………………………………………………………………… ……………………………………………………………………………………… ……………………………………………………………………………………… ……………………………………………………………………………………… ……………………………………………………………………………………… ……………………………………………………………………………………… ……………………………………………………………………………………… ……………………………………………………………………………………… ……………………………………………………………………………………… ……………………………………………………………………………………… ……………………………………………………………………………………… ……………………………………………………………………………………… Khóa lu n đáp ng yêu c u c a Khóa lu n c nhân CNTT TP H Chí Minh, ngày … tháng …… n m 2012 Giáo viên ph n bi n ii L IC M N Chúng em xin chân thành c m n Khoa Công ngh Thông tin, tr ng i h c Khoa h c T nhiên TP H Chí Minh t o u ki n cho chúng em th c hi n đ tài khóa lu n t t nghi p Chúng em xin g i l i c m n sâu s c đ n PGS.TS Tr n tr c ti p h an Th , ng i ng d n t n tình ch b o chúng em su t th i gian th c hi n đ tài Th y truy n đ t cho chúng em nhi u ki n th c quan tr ng c ng nh đ nh h ng đ chúng em có th hoàn thành khóa lu n Chúng em xin chân thành c m n quý Th y Cô Khoa cho chúng em nh ng ki n th c quý báu su t th i gian khóa h c, cho chúng em m t n n t ng lý thuy t v ng ch c nh ng k thu t c b n thi t y u c m n anh c bi t chúng em mu n ng Hoàng H i anh Tr n Thanh H i giúp đ t n tình trình th c hi n đ tài Chúng xin chân thành c m n b m , anh ch em t t c ng i thân gia đình t o m i u ki n t t nh t, đ ng viên khích l chúng trình h c t p nói chung trình làm khóa lu n t t nghi p nói riêng M c dù chúng em c g ng hoàn thành lu n v n ph m vi kh n ng cho phép, nh ng ch c ch n s không tránh kh i nh ng thi u sót, kính mong s c m thông t n tình ch b o c a quý Th y Cô b n Tp H Chí Minh, tháng n m 2012 Nhóm sinh viên Nguy n ình V nh An - i Nguyên Kha Khoa Công Ngh Thông Tin B môn Công Ngh Ph n M m C NG CHI TI T Tên đ tài: Xây d ng công c web h tr tìm l i ng d ng C/C++ Giáo viên h ng d n: PGS.TS Tr n an Th Th i gian th c hi n: T ngày 01/12/2011 đ n 25/06/2012 Sinh viên th c hi n:  0812015 – Nguy n ình V nh An  0812213 – Nguyên Kha Lo i đ tài:  Nghiên c u hi n tr ng xây d ng mô hình  Tìm hi u công ngh xây d ng ng d ng minh h a N i dung đ tài: N i dung yêu c u đ tài  Nghiên c u t ng h p hi n tr ng công c h tr tìm l i môi tr phát tri n tích h p môi tr ng truy n th ng desktop môi tr ng ng web  Tìm hi u công c h tr l p trình web, đ c bi t k thu t web th i gian th c; bên c nh th vi n b khung phát tri n ng d ng cho ng d ng web d ng đ n trang  xu t mô hình công c h tr tìm l i ng d ng C/C++ web  Xây d ng công c minh h a h tr tìm l i ng d ng C/C++ môi tr ii ng web Ph ng pháp th c hi n  T n d ng tài li u thi t k c a môi tr ng phát tri n tích h p có desktop đ nghiên c u mô hình công c h tr tìm l i  Phát tri n h th ng d a thành ph n mi n phí mã ngu n m  Th c hi n báo cáo ti n đ h ng tu n v i giáo viên h  Tài li u hóa b ng d n c th c hi n, tài li u tham kh o kh o sát làm c s cho khóa lu n K t qu khóa lu n:  Xây d ng thành công mô hình công c minh h a cung c p ch c n ng h tr tìm l i ng d ng C/C++ môi tr trình th c thi, đ i chi u t ng web S n ph m cho phép u n ng ng v trí mã ngu n, kh o sát bi n c c b hàm hi n hành  Báo cáo t ng h p hi n tr ng công c h tr tìm l i ng d ng C/C++, k thu t t ng tác web th i gian th c h ng phát tri n t ng lai K ho ch th c hi n:  01/12/2011 – 31/12/2011: Liên h giáo viên h ng d n, nh n tìm hi u đ tài  01/01/2012 – 31/01/2012: Th nghi m kh thi ch c n ng h tr tìm l i môi tr ng web o Tu n 1: Th nghi m kh thi k t n i th i gian th c gi a trình t máy ch u ki n kh thi cho phép công c h tr tìm l i web có th ho t đ ng; o Tu n 2, 3, 4: Xây d ng th nghi m đ n gi n cho phép th c hi n tìm l i ng d ng C/C++ iii  01/02/2012 – 31/03/2012: Xây d ng mô hình o Tu n 1, 2: Tìm hi u mô hình Eclipse; o Tu n 3, 4, 5: Tìm hi u gdb k thu t web th i gian th c; o Tu n 6, 7, 8: Xây d ng mô hình công c h tr tìm l i  01/04/2012 – 01/06/2012: Phát tri n ng d ng minh h a o Tu n 1, 2, 3: Xây d ng thành ph n c a máy ch web; o Tu n 4, 5, 6: Xây d ng thành ph n x lý trình t; o Tu n 7, 8, 9: Xây d ng thành ph n giao di n  01/06/2012 – 25/06/2012: T ng h p k t qu vi t báo cáo Xác nh n c a GVHD Ngày 20 tháng n m 2012 Nhóm sinh viên th c hi n Tr n an Th Nguy n ình V nh An  iv Nguyên Kha M CL C CH NG M U 1.1 Gi i thi u chung .1 1.2 Môi tr 1.3 M c tiêu nghiên c u 1.4 it 1.5 CH ng phát tri n tích h p web ng nghiên c u .3 Ph m vi đ tài NG T NG QUAN CÁC CÔNG C H TR TÌM L I .4 2.1 L ch s công c h tr tìm l i 2.2 Công c h tr tìm l i môi tr ng phát tri n tích h p h tr ng d ng C/C++ .5 2.3 CH Công c web h tr tìm l i NG TRÌNH G L IH TR NG D NG C/C++ VÀ WEB TH I GIAN TH C 12 3.1 Trình g l i h tr 3.2 K thu t nh p xu t b t đ ng b 16 3.3 JavaScript 19 3.4 Web th i gian th c 20 3.5 Node.js – Nh p xu t b t đ ng b l p trình h 3.6 Công c h tr tìm l i c a Eclipse 25 CH NG ng d ng C/C++ 12 MÔ HÌNH CÔNG C TRÊN WEB H TR ng s ki n 23 TÌM L I NG D NG C/C++ 29 4.1 Ki n trúc h th ng 29 v 4.2 Thi t k phân h máy ch .34 4.3 Thi t k phân h trình t 40 4.4 Giao th c kênh REST .53 4.5 Giao th c kênh Socket 55 4.6 Khung nhìn 57 CH NG CÀI T VÀ TRI N KHAI H TH NG 60 5.1 T ng quan h th ng 60 5.2 Cài đ t phân h máy ch 60 5.3 Cài đ t phân h trình t .64 5.4 Tri n khai h th ng 71 CH NG K T QU VÀ H NG PHÁT TRI N 74 6.1 K t qu khóa lu n 74 6.2 H ng phát tri n .76 TÀI LI U THAM KH O 80 PH L C 82 A.1 M t s gi i pháp cho phép máy ch chuy n d li u đ n trình t ch đ ng 82 A.2 M t s s đ tu n t khác trình th c thi ng d ng 84 A.3 Các tài nguyên ph A.4 Các s ki n kênh Socket 89 A.5 Các th vi n h tr JavaScript 91 ng th c REST 88 vi h u h t thi t b , nhiên s khác bi t v cách t ng i dùng nên m t s tính n ng không th ho t đ ng đ ng mang l i tr i nghi m t t h n cho ng c nđ ng tác v i có th ho t i dùng, giao di n ng d ng c thi t k riêng cho nh ng thi t b t n d ng t i đa nh ng tính n ng: ch m, vu t, đa ch m, xoay hình, lo i c m bi n…  Làm vi c c ng tác: M t m c tiêu c a vi c xây d ng môi tr phát tri n tích h p môi tr ng ng web khai thác t t h n s k t n i c a web, nâng cao kh n ng làm vi c c ng tác h th ng V i s h tr c a web th i gian th c, v n đ kh thi v giao ti p gi a trình t – máy ch web đ c gi i quy t m đ ng cho s phát tri n c a tính n ng làm vi c c ng tác Sau m t s h ng làm vi c c ng tác ph c v cho trình s d ng công c h tr tìm l i t ng lai:  L u tr thông tin th c thi: Cho phép ghi nh n toàn b thông tin v m i phiên th c thi c a ng d ng, liên k t phân h b o đ m ch t l ng ph n m m, cho phép vi c phát hi n, s a ch a m khuy t c a ph n m m di n nhanh chóng h n;  Chia s phiên th c thi: Các thành viên l p trình, thành viên ki m th qu n lý d án có th xem xét m t trình th c thi đ đ a nh n đ nh gi i pháp cho nh ng v n đ Xa h n n a có th cho phép nh ng thành viên làm vi c phiên th c thi, cho phép s d ng công c m t cách hi u qu h n môi tr vi c c ng tác 79 ng làm TÀI LI U THAM KH O [1] Michael Armbrust et al., Communications of the ACM, vol 53, no 4, April 2010 [2] ng Hoàng H i and Tr n Thanh H i, "Xây d ng phát tri n ng d ng h tr so n th o, biên d ch th c thi ch ng trình môi tr ng Web," 2011 [3] FOLDOC Grace Hopper [Online] http://foldoc.org/Grace+Hopper [4] Jonathan B Rosenberg, How Debuggers Work: Algorithms, Data Structures, and Architecture.: John Wiley & Sons [5] Microsoft Using an Asynchronous Controller in ASP.NET MVC [Online] http://msdn.microsoft.com/en-us/library/ee728598.aspx [6] GNU Project Non-Stop Mode [Online] http://sourceware.org/gdb/onlinedocs/gdb/Non_002dStopMode.html#Non_002dStop-Mode [7] GNU Project The GDB/MI Interface [Online] http://ftp.gnu.org/oldgnu/Manuals/gdb-5.1.1/html_node/gdb_211.html [8] Ryan Dahl node.js - JS conf [Online] http://nodejs.org/jsconf.pdf [9] Dan Kegel The C10K problem [Online] http://www.kegel.com/c10k.html [10] IBM Boost application performance using asynchronous I/O [Online] http://www.ibm.com/developerworks/linux/library/l-async/?ca=dgrlnxw02aUsingPOISIXAIOAPI [11] Ajax.org Cloud9 - GitHub [Online] https://github.com/ajaxorg/cloud9 [12] Wikipedia JavaScript [Online] http://en.wikipedia.org/wiki/JavaScript [13] Charles Severance, "Java Script: Designing a Language in 10 Days," IEEE Computer Society, vol 45, no 2, pp 7-8, 2012 [14] Douglas Crockford, JavaScript: The Good Parts.: O'Reilly, 2008 80 [15] Wikipedia Push technology [Online] http://en.wikipedia.org/wiki/Push_technology [16] Node.js About - Node.js [Online] http://nodejs.org/about/ [17] Tom Hughes-Croucher and Mike Wilson, Node: Up and Running.: O'Reilly Media, 2012 [18] Wikipedia List of Eclipse based software [Online] http://en.wikipedia.org/wiki/List_of_Eclipse-based_software [19] Darin Wright and Curtis Windatt (2008) EclipseCon [Online] http://www.eclipsecon.org/2008/sub/attachments/Debug_Platform_The_Ba sics.ppt [20] IBM Interfacing with the CDT debugger [Online] http://www.ibm.com/developerworks/opensource/library/os-eclipse-cdtdebug2/index.html [21] Roy Fielding Fielding Dissertation: CHAPTER 5: Representational State Transfer (REST) [Online] http://www.ics.uci.edu/~fielding/pubs/dissertation/rest_arch_style.htm 81 PH L C A.1 M t s gi i pháp cho phép máy ch chuy n d li u đ n trình t ch đ ng Sau m t s k thu t ho c chu n đ thi t l p kênh k t n i hai chi u gi a máy ch trình t web: Tên Polling Ph ng pháp th c hi n u m Nh c m Dùng k thu t ajax, chèn th script ho c n gi n Không đ th y b gi iframe th c hi n yêu c u đ n máy ch theo H tr t t c trình m t chu k nh t đ nh t Chi phí k Máy ch web tr v nh ng c p nh t m i “C ng h (n u có) l p t c m b o đ tr , ng t (lag) t n i máy ch t ng cao ng” d n đ n máy ch t i Tiêu t n b ng thông đ Longpolling Flash socket T ng t nh polling nh ng máy ch web tr t ng đ i gi k t n i (không tr v k t qu ) cho đ n c p nh t g n nh có c p nh t m i ho c h t th i gian t t chuy n đ n trình đa cho yêu c u ngày l p t c (tùy vào máy ch web) Trình t ti p t c t o k t n i long-polling đ n máy ch H tr t t c t Dùng k t n i TCP đ c cung c p b i Flash ng truy n th p, Ph c t p đ c òi h i máy ch web gi k t n i t ph i truy v n liên t c c s d li u ho c thu c đ i c p nh t m i tr th p Chi phí trao đ i th p 82 i dùng c m trình Tiêu t n b ng thông đ ng truy n Ph thu c plugin d d n đ n v n đ b om t Ít h tr n n t ng di đ ng K t n i chi u Serversend events M t thành ph n c a HTML5 cho phép trình t nh n c p nh t t máy ch web tr th p c h tr h u h t trình t m i tr (Internet Explorer) Ch h tr máy ch chuy n s ki n đ n trình t, ph i k t h p v i nh ng k thu t khác đ t o thành k t n i th i gian th c WebSocket Dùng k t n i HTTP thông th ng đ n máy tr th p ch sau giao th c đ c “nâng c p” đ s d ng k t n i TCP có đ t o thành kênh Chi phí trao đ i th p liên l c chi u K t n i chi u V n m t chu n c a HTML5, nhiên đ c tách thành chu n riêng đ t p trung phát tri n HTML5 c n m t th i gian dài đ hoàn thành vi c chu n hóa c h tr h u h t trình t m i (k c Internet Explorer 10) Có th b ch n b i t ch trung gian ng l a ho c máy Trình máy ch web ph i h tr giao th c m i 83 A.2 M t s s đ tu n t khác trình th c thi ng d ng S đ tu n t c a nh p xu t chu n t ng tác v i ng d ng: : Process : Socket : User : Server 1: Process event: Stdout 2: 3: Trigger event 4: 5: Write stdin 6: Process stdin: Write 7: Process stdin: Write 8: 84 S đ tu n t trình đ t breakpoint : BreakpointManager : Socket : DebugTarget : User : Server : BreakpointInfo 1: Add breakpoint 2: 3: : Breakpoint 4: 5: 6: 7: Debug command: Add breakpoint 8: Debug command: Add breakpoint 9: 10: 11: Debug command: Add breakpoint 12: 13: Update id 14: 15: 85 S đ tu n t trình l y thông tin bi n c u trúc : Variable : User : VariableManager : DebugTarget : Socket : Server 1: Expand variable 2: Get children 3: Debug command: Get variable children 4: Debug command: Get variable children 5: Debug command: Get variable children 6: 7: 8: 9: Debug result: Get variable children 10: 11: Register variable 12: 13: 14: 15: 86 S đ tu n t trình l y thông tin bi n c a stackframe : Stackfram e : DebugTarget : VariableManager : Socket : Server : Us er 1: Select fram e 2: Get fram e variables 3: Debug com m and: Get variables 4: Debug com m and: Get variables 5: Debug com m and: Get variables 6: 7: 8: Debug res ult: Get variables 9: 10: Debug com m and: Regis ter variables 11: Debug com m and: Regis ter variables 12: Debug com m and: Regis ter variables 13: 14: 15: 16: Debug res ult: Regis ter variables 17: : Variable 18: 19: 20: Trigger event 21: 87 A.3 Các tài nguyên ph ng th c REST i v i tài nguyên danh sách ph  GET: L y danh sách đ i t  POST: T o m t đ i t i v i tài nguyên đ i t ng th c HTTP đ c s d ng: ng th c HTTP đ c s d ng: ng ng m i ng ph  GET: L y thông tin chi ti t c a đ i t  PUT: C p nh t thông tin đ i t  DELETE: Xóa đ i t ng ng ng  GET: L y thông tin c a phiên làm vi c nh d ng c a thông tin trao đ i đ c s d ng JSON đ đ n gi n hóa trình x lý thông tin c ng nh tùy bi n m r ng d dàng c u trúc thông tin Tên tài nguyên URI Ng i dùng D án Ph ng th c /api/users GET, POST /api/{username} GET, PUT /api/{username}/projects/ GET, POST /api/{username}/{project} GET, PUT, DELETE T p tin /api/{username}/{project}/files/{path} GET, POST, PUT, DELETE Breakpoint /api/{username}/{project}/breakpoints/ GET, POST /api/{username}/{project}/breakpoints/{id} GET, PUT, DELETE Bi u th c /api/{username}/{project}/expressions/ GET, POST /api/{username}/{project}/expressions/{id} GET, PUT, DELETE 88 A.4 Các s ki n kênh Socket Tên s ki n Phát sinh s ki n Nh n s ki n connection Trình t Máy ch Yêu c u k t n i Ki m tra quy n, t o phiên làm vi c Trình t Máy ch launch-create Lo i phiên th c thi: có ho c trình T o phiên th c thi tr v k t qu N u thành g l i công tr v thông tin c a phiên th c thi (mã phiên th c thi {id}) launch-{id}-run Trình t Máy ch B t đ u phiên th c thi Trình g l i b t đ u phiên th c thi K t qu : Hàm g i ng launch-{id}-terminate debug-{id}-suspend debug-{id}-request process-{id}-stdin c Trình t Máy ch Ng t phiên th c thi Trình g l i b t đ u phiên th c thi Trình t Máy ch T m d ng phiên th c thi Trình g l i t m d ng phiên th c thi Trình t Máy ch Chuy n l nh Trình g l i th c thi l nh Trình t Máy ch 89 Nh p d li u vào nh p chu n c a ch ng Nh p d li u vào nh p chu n c a ch ng trình trình debug-{id}-async-exec Máy ch Trình t debug-{id}-async-notify S ki n trình g l i phát sinh Phát sinh s ki n Debug Target, kích ho t x lý process-{id}-stdout process-{id}-exit Máy ch Trình t D li u xu t qua xu t chu n Phát sinh s ki n đ i t Máy ch Trình t Ch C p nh t tr ng thái, phát sinh s ki n, kích ho t x ng trình k t thúc ng Process lý disconnect Trình t K t n i m ng ng t ho c ng Máy ch i dùng đóng Ng t k t n i, xóa phiên làm vi c th trình t 90 A.5 Các th vi n h tr JavaScript Ngoài th vi n chu n Node.js ho c trình t cung c p, th vi n m r ng cho phép xây d ng ng d ng m t cách nhanh chóng A.5.1 Express Node.js cung c p giao di n l p trình m c th p, cho phép l p trình viên xây d ng máy ch web d a vào mô-đun chu n Các yêu c u HTTP đ qua m t hàm g i ng đ c có s ki n “request” (t c g i t trình t) Express cung c p cho ng c x lý thông ng ng v i yêu c u HTTP i dùng l p đ x lý yêu c u HTTP g i middleware, thao tác x lý yêu c u nh : đ c cookie (m t d ng l u tr phía trình t), phân tích đ nh d ng n i dung yêu c u (d ng POST ho c JSON), qu n lý phiên làm vi c… t t c đ u đ c tách thành nh ng middleware – có th g i l p trung gian hay t ng x lý, đ i v i m i URI l p trình viên xác đ nh middleware s p x p th t middleware đ x lý yêu c u t ng i dùng Express thích h p cho đ xây d ng máy ch cung c p giao ti p l p trình (API) đ i t ng tài nguyên ki n trúc REST Vi c x lý yêu c u d a middleware x lý theo URI giúp tái s d ng nh ng middleware x lý lo i URI khác có liên quan đ n m t lo i tài nguyên Website: http://expressjs.com/ A.5.2 Socket.io Giao th c WebSocket cho phép thi t l p kênh k t n i hai chi u gi a máy ch trình t nhiên WebSocket ch đ c h tr m t s trình t phiên b n m i nh t có th b ch n b i máy ch trung gian ho c t ng l a Socket.io cung c p m t giao th c l p trình nh t, h tr nhi u k thu t t o kênh k t n i hai chi u WebSocket t o thành l p tr u t ng cho phép ng d ng h tr h u h t lo i trình t khác Ngoài Socket.io m r ng giao di n l p trình c a WebSocket t EventEmitter cho phép l p trình h ng t v i ng s ki n kênh k t n i Socket.io 91 Node.js t o s khác bi t so v i gi i pháp n n t ng khác đáp ng đ c v n đ hi u n ng c a h th ng Website: http://socket.io/ A.5.3 Sequelize đ it Sequelize cung c p m t l p tr u t ng ánh x gi a c s d li u quan h ng (ORM) M t khác l p tr u t ng cho phép ng d ng làm vi c nhi u h qu n tr c s d li u khác mà không c n ph i thay đ i mã ngu n Sequelize đ nh ngh a lo i đ i t ng m i quan h gi a đ i t phép chuy n đ nh ngh a thành khai báo l B ng vi c thao tác đ i t ng cho c đ cho c s d li u quan h ng vi c phát tri n ng d ng tr nên d dàng h n Sequelize cung c p nh ng ch c n ng t ng t nh ActiveRecord Ruby on Rails Tuy nhiên c ng nh nh ng ORM khác, Sequelize ch phù h p cho vi c phát tri n nhanh không tr ng đ n hi u n ng c ng nh t n d ng ch c n ng khác c a c s d li u Website: http://sequelizejs.com/ A.5.4 CoffeeScript CoffeeScript có th xem m t phiên b n t a Python, Ruby hay Haskell c a JavaScript CoffeeScript s d ng ký t xu ng dòng kho ng tr ng đ đánh d u dòng l nh kh i l nh S thay đ i giúp gi m s dòng th a mã ngu n, d đ c ch nh s a Bên c nh CoffeeScript kh c ph c nh c m c a JavaScript:  Cung c p cú pháp khai báo l p đ i t ng t ng minh thay cho hàm kh i t o (constructor) khuôn m u (prototype);  Thay th vi c khai báo bi n d g p l i khai báo toàn c c b ng cách khai báo t đ ng;  Cú pháp đ i t ng s d ng dòng canh dòng;  Kh c ph c cú pháp so sánh “y u”;  Thay th hàm c u trúc u n b ng bi u th c; 92  Cú pháp thao tác m ng đ n gi n;  Và nhi u c i ti n khác Mã ngu n CoffeeScript đ c đ c chuy n-d ch (transcompile) thành mã ngu n JavaScript th c thi CoffeeScript ch m t th hi n khác c a JavaScript cho phép vi c l p trình JavaScript d dàng h n M t m thú v trình chuy nd ch CoffeeScript c ng đ c vi t b ng CoffeeScript (self-hosting) Website: http://coffeescript.org/ A.5.5 RequireJS V i s phát tri n nhanh chóng c a ng d ng web, l m t ng d ng ngày nhi u song song v i s l nhi u Nhu c u tách mã ngu n JavaScript đ h u h n RequireJS đ ng mã JavaScript ng mô-đun ngày c s d ng phía trình t hi n c s d ng đ đ nh ngh a mô-đun JavaScript V i s phân chia mô-đun thành t p tin riêng bi t trình phát tri n qu n lý mã ngu n d dàng dàng h n Các mô-đun đ c t i “đ ng” có nh ng s thay đ i mã ngu n, không c n thi t ph i s a đ i nh ng mã HTML đ thêm/xóa th script RequireJS cung c p c ch t i nh ng mô-đun c n thi t theo nh c u c ng nh xây d ng m i quan h ph thu c gi a nh ng mô-đun v i đ c t AMD Ngoài RequireJS cho phép t i u mã ngu n b ng cách t ng h p t t c t p tin mã ngu n thành m t t p tin nh t gi m s l ng t p tin c n t i xu ng, t i u hóa nén mã ngu n: rút ng n tên bi n, lo i b kho ng tr ng… Website: http://requirejs.org/ 93

Ngày đăng: 05/11/2016, 12:06

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w