{"$schema": "https://c3voc.de/schedule/schema.json", "generator": {"name": "pretalx", "version": "2026.1.1"}, "schedule": {"url": "https://pretalx.com/jcconf-2023/schedule/", "version": "0.11", "base_url": "https://pretalx.com", "conference": {"acronym": "jcconf-2023", "title": "JCConf 2023", "start": "2023-10-06", "end": "2023-10-06", "daysCount": 1, "timeslot_duration": "00:05", "time_zone_name": "Asia/Taipei", "colors": {"primary": "#3aa57c"}, "rooms": [{"name": "401", "slug": "2362-401", "guid": "2239afb7-e3ce-52c0-a7ee-9393d7c5a53e", "description": null, "capacity": 200}, {"name": "402AB", "slug": "2363-402ab", "guid": "d4647055-880c-574f-aa29-4154d4c6ea87", "description": null, "capacity": 120}, {"name": "402CD", "slug": "2364-402cd", "guid": "f8a899fd-7ae6-5cbf-8d81-895a06094261", "description": null, "capacity": 120}, {"name": "203", "slug": "2365-203", "guid": "5a7b574d-abb4-597b-94e8-a5737a9d79f6", "description": null, "capacity": 80}, {"name": "403", "slug": "2366-403", "guid": "cf58ad98-f428-5a1b-9c88-f09c4ea4bb04", "description": null, "capacity": 30}], "tracks": [{"name": "Promotion", "slug": "3733-promotion", "color": "#C19D0C"}, {"name": "402AB", "slug": "3736-402ab", "color": "#268785"}, {"name": "401", "slug": "3734-401", "color": "#D0104C"}, {"name": "402CD", "slug": "3735-402cd", "color": "#1B813E"}, {"name": "203", "slug": "3732-203", "color": "#954A45"}, {"name": "403", "slug": "3737-403", "color": "#574C57"}], "days": [{"index": 1, "date": "2023-10-06", "day_start": "2023-10-06T04:00:00+08:00", "day_end": "2023-10-07T03:59:00+08:00", "rooms": {"401": [{"guid": "69c95d6c-f08f-5f99-865d-b4ff6c811c05", "code": "HW9SHU", "id": 37511, "logo": null, "date": "2023-10-06T09:25:00+08:00", "start": "09:25", "duration": "00:10", "room": "401", "slug": "jcconf-2023-37511-opening", "url": "https://pretalx.com/jcconf-2023/talk/HW9SHU/", "title": "Opening", "subtitle": "", "track": null, "type": "Session", "language": "zh-hant", "abstract": "-", "description": null, "recording_license": "", "do_not_record": false, "persons": [], "links": [], "feedback_url": "https://pretalx.com/jcconf-2023/talk/HW9SHU/feedback/", "origin_url": "https://pretalx.com/jcconf-2023/talk/HW9SHU/", "attachments": []}, {"guid": "66c0278a-f16e-51f5-944f-23cfa5f6b56a", "code": "8RF8RL", "id": 36397, "logo": null, "date": "2023-10-06T09:35:00+08:00", "start": "09:35", "duration": "00:05", "room": "401", "slug": "jcconf-2023-36397-line", "url": "https://pretalx.com/jcconf-2023/talk/8RF8RL/", "title": "\u5ba3\u50b3\u8b70\u7a0b\uff08LINE\uff09", "subtitle": "", "track": "Promotion", "type": "Session", "language": "zh-hant", "abstract": "\u7e3d\u90e8\u4f4d\u65bc\u65e5\u672c\u7684 LINE \u4ee5\u300c\u62c9\u8fd1\u4f60\u6211\u7684\u8ddd\u96e2\u300d\u70ba\u4f01\u696d\u4f7f\u547d\uff0c\u900f\u904e\u591a\u5143\u7684\u884c\u52d5\u670d\u52d9\u8207\u5167\u5bb9\uff0c\u81f4\u529b\u5c07\u4eba\u5011\u3001\u8cc7\u8a0a\u8207\u793e\u6703\u7dca\u5bc6\u9023\u7d50\u3002\u81ea 2011 \u5e74 6 \u6708\u4ee5\u901a\u8a0a\u8edf\u9ad4\u7684\u578b\u614b\u63a8\u51fa\uff0c\u73fe\u66f4\u63a8\u5c55\u5176\u591a\u5143\u7684\u5168\u7403\u751f\u614b\u7cfb\uff0c\u4e26\u5c07\u89f8\u89d2\u5ef6\u4f38\u81f3\u4eba\u5de5\u667a\u6167\u3001\u91d1\u878d\u79d1\u6280\u7b49\u9818\u57df\uff0c\u7a4d\u6975\u5be6\u73fe\u300c\u667a\u6167\u5165\u53e3\u300d\u7684\u9858\u666f\uff0c2021 \u5e74 3 \u6708\uff0cLINE \u8207\u65e5\u672c\u898f\u6a21\u6700\u5927\u7684\u7db2\u8def\u79d1\u6280\u96c6\u5718\u4e4b\u4e00 Z Holdings \u6b63\u5f0f\u6574\u4f75\uff0c\u672a\u4f86\u4e5f\u5c07\u6301\u7e8c\u63d0\u4f9b\u7528\u6236\u4eab\u6709\u6700\u5373\u6642\u3001\u4fbf\u5229\u7684\u884c\u52d5\u751f\u6d3b\u3002\u6b32\u77ad\u89e3\u66f4\u591a\u8cc7\u8a0a\uff0c\u8acb\u700f\u89bd\u5b98\u65b9\u7db2\u7ad9\uff1ahttp://linecorp.com/zh-hant/", "description": null, "recording_license": "", "do_not_record": false, "persons": [], "links": [], "feedback_url": "https://pretalx.com/jcconf-2023/talk/8RF8RL/feedback/", "origin_url": "https://pretalx.com/jcconf-2023/talk/8RF8RL/", "attachments": []}, {"guid": "4417e874-12e1-5ced-9807-1dde45511ead", "code": "ZMEAJW", "id": 36010, "logo": null, "date": "2023-10-06T09:40:00+08:00", "start": "09:40", "duration": "00:45", "room": "401", "slug": "jcconf-2023-36010-java-21", "url": "https://pretalx.com/jcconf-2023/talk/ZMEAJW/", "title": "\u6df1\u5165\u6dfa\u51fa Java 21 \u529f\u80fd", "subtitle": "", "track": "401", "type": "Session", "language": "en", "abstract": "Since the previous LTS, JDK 17, was released in 2021, there are quite lots of features added into the Java specification. In this year, the latest JDK 21 LTS version is released and brings us many formal functions to improve our daily works. This session will focus on the new features, including String Templates, Sequenced Collections, Record Patterns, Pattern Matching for switch, Unnamed features and Virtual Threads.", "description": null, "recording_license": "", "do_not_record": false, "persons": [{"code": "G9HLDU", "name": "Joseph Kuo", "avatar": "https://pretalx.com/media/avatars/G9HLDU_IjdNFmr.webp", "biography": "\u5341\u4e94\u6b72\u7372\u8d08\u88ab\u6dd8\u6c70\u7684 386 \u96fb\u8166\uff0c\u6c92\u6709\u786c\u789f\u548c\u5149\u789f\u6a5f\u800c\u7121\u6cd5\u73a9\u5927\u88dc\u5e16\uff0c\u53ea\u597d\u6539\u73a9\u7a0b\u5f0f\u8a2d\u8a08\u4e26\u8d70\u4e0a\u9019\u689d\u4e0d\u6b78\u8def\u3002\u9ad8\u4e2d\u6642\u4e0d\u5c0f\u5fc3\u7528 BASIC \u5beb\u4e86\u884c\u4e8b\u66c6\u7cfb\u7d71\u548c\u5c0f\u904a\u6232\uff0c\u5927\u5b78\u5538\u6578\u5b78\u526f\u4fee\u8cc7\u5de5\u6642\u73a9 C/C++/Java\uff0c\u5f04\u4e86 BBS\u3001\u90e8\u843d\u683c\u3001\u96fb\u5b50\u5546\u52d9\u5e73\u53f0\u3001\u9032\u92b7\u5b58\u7cfb\u7d71\u548c\u4e00\u5806\u5c0f\u7a0b\u5f0f\uff0c\u4e5f\u9806\u624b\u7528 LPC \u8a9e\u8a00\u5beb MUD\u3002\u66fe\u5728\u8cc7\u8a0a\u6559\u80b2\u6a5f\u69cb\u3001\u52a0\u503c\u7c21\u8a0a\u670d\u52d9\u3001\u96f2\u7aef\u5f71\u97f3\u5e73\u53f0\u3001\u5168\u7403\u96fb\u5b50\u5546\u52d9\u3001\u8cc7\u5b89\u9632\u8b77\u3001\u7528\u6236\u884c\u70ba\u7ba1\u7406\u3001\u7269\u806f\u7db2\u7b49\u516c\u53f8\u4e2d\u5de5\u4f5c\uff0c\u8ca0\u8cac\u5404\u5f0f\u5927\u578b\u5c08\u6848\u7684\u67b6\u69cb\u8a2d\u8a08\u3001\u958b\u767c\u5be6\u4f5c\u3001\u90e8\u7f72\u7dad\u8b77\u3001\u4ee5\u53ca\u6280\u8853\u6559\u5b78\u3002\u5c08\u9577\u662f Java\u3001\u8edf\u9ad4\u5de5\u7a0b\u3001\u7cfb\u7d71\u67b6\u69cb\u3001\u8a2d\u8a08\u6a21\u5f0f\u3001\u96f2\u7aef\u904b\u7b97\u3001\u908a\u7de3\u904b\u7b97\u3001\u7269\u806f\u7db2\u3001\u958b\u653e\u539f\u59cb\u78bc\u5957\u4ef6\u53ca\u5404\u5f0f\u76f8\u95dc\u6280\u8853\u3002\u72c2\u71b1\u5730\u559c\u611b\u628a\u73a9\u5404\u7a2e\u65b0\u77e5\u6280\u8853\uff0c\u9858\u671b\u662f\u80fd\u4e00\u8f29\u5b50\u5beb\u7a0b\u5f0f\u5beb\u5230\u8001\u3002", "public_name": "Joseph Kuo", "guid": "6fb5a098-aa1d-5dc8-b7fe-425a417b2df4", "url": "https://pretalx.com/jcconf-2023/speaker/G9HLDU/"}], "links": [], "feedback_url": "https://pretalx.com/jcconf-2023/talk/ZMEAJW/feedback/", "origin_url": "https://pretalx.com/jcconf-2023/talk/ZMEAJW/", "attachments": []}, {"guid": "f627dd74-4b00-5d2e-8eb3-7bee105f55f6", "code": "RR3NJX", "id": 37512, "logo": null, "date": "2023-10-06T10:25:00+08:00", "start": "10:25", "duration": "00:10", "room": "401", "slug": "jcconf-2023-37512-break", "url": "https://pretalx.com/jcconf-2023/talk/RR3NJX/", "title": "Break", "subtitle": "", "track": null, "type": "Session", "language": "zh-hant", "abstract": "-", "description": null, "recording_license": "", "do_not_record": true, "persons": [], "links": [], "feedback_url": "https://pretalx.com/jcconf-2023/talk/RR3NJX/feedback/", "origin_url": "https://pretalx.com/jcconf-2023/talk/RR3NJX/", "attachments": []}, {"guid": "0bdbbad2-815f-5cb0-8b31-d0ffc603c914", "code": "BYTTCK", "id": 36398, "logo": null, "date": "2023-10-06T10:35:00+08:00", "start": "10:35", "duration": "00:05", "room": "401", "slug": "jcconf-2023-36398-mysql", "url": "https://pretalx.com/jcconf-2023/talk/BYTTCK/", "title": "\u5ba3\u50b3\u8b70\u7a0b\uff08MySQL\uff09", "subtitle": "", "track": "Promotion", "type": "Session", "language": "zh-hant", "abstract": "MySQL", "description": null, "recording_license": "", "do_not_record": false, "persons": [], "links": [], "feedback_url": "https://pretalx.com/jcconf-2023/talk/BYTTCK/feedback/", "origin_url": "https://pretalx.com/jcconf-2023/talk/BYTTCK/", "attachments": []}, {"guid": "a7bf13b0-73d1-517f-822f-c4a1770c91f1", "code": "PWDV7Y", "id": 32785, "logo": null, "date": "2023-10-06T10:40:00+08:00", "start": "10:40", "duration": "00:45", "room": "401", "slug": "jcconf-2023-32785-spring-framework---ioc-container", "url": "https://pretalx.com/jcconf-2023/talk/PWDV7Y/", "title": "\u5e36\u4f60\u7528\u6a21\u5f0f\u8a9e\u8a00\u7684\u9ad8\u6548\u601d\u8def\u89e3\u6790 Spring Framework \u539f\u59cb\u78bc\uff0c\u4e26\u5f9e\u4e2d\u5b78\u7fd2\u5982\u4f55\u8a2d\u8a08\u4e00\u500b IoC Container", "subtitle": "", "track": "401", "type": "Session", "language": "zh-hant", "abstract": "\u8eab\u70ba\u5f8c\u7aef\u5de5\u7a0b\u5e2b\uff0c\u65e2\u7136\u5728\u672a\u4f86\u7684\u8def\u4e0a\u6211\u5011\u5fc5\u9808\u5927\u91cf\u4f7f\u7528 Spring Framework \u76f8\u8655\uff0c\u70ba\u4f55\u4e0d\u7d66\u81ea\u5df1\u4e00\u500b\u6a5f\u6703\u597d\u597d\u5730\u4e86\u89e3\u4e00\u4e0b Spring Framework \u7684\u5167\u6db5\uff0c\u4f86\u7576\u5b83\u7684\u77e5\u5fc3\u670b\u53cb\u5462\uff1f\r\n\r\n\u5927\u5bb6\u597d\uff0c\u6211\u662f\u6c34\u7403\u6f58\uff0c\u6211\u5c08\u7cbe\u8a2d\u8a08\u6a21\u5f0f\u4e26\u559c\u611b\u5206\u4eab\u8edf\u9ad4\u8a2d\u8a08\u5b78\u3002\r\n\u9019\u6b21\u6211\u60f3\u8981\u716e\u4e00\u9053\u6bd4\u8f03\u786c\u6838\u7684\u83dc\u8272\u9001\u7d66\u5927\u5bb6\uff1a\u300c\u5e36\u4f60\u7528\u6a21\u5f0f\u8a9e\u8a00\u7684\u9ad8\u6548\u601d\u8def\u89e3\u6790 Spring Framework \u539f\u59cb\u78bc\uff0c\u4e26\u5f9e\u4e2d\u5b78\u7fd2\u5982\u4f55\u8a2d\u8a08\u4e00\u500b Web Framework\u300d\r\n\r\n\u6211\u6703\u5728\u9019\u5834\u6f14\u8b1b\u4e2d\uff0c\u8b93\u4f60\u8a8d\u8b58\u4ee5\u4e0b\u9019\u5e7e\u500b\u8a71\u984c\uff1a\r\n1. Java \u7684\u6280\u8853\u5806\u758a\uff1aWeb Framework \u7684\u6280\u8853\u50f9\u503c\u4e3b\u5f35\u662f\u4ec0\u9ebc\uff1f\r\n2. \u4e0d\u540c\u7a2e\u985e\u7684 Web Framework\uff1aRegister-based vs. IoC-based\r\n3. Recap\uff1a\u63a2\u7a76 Spring Autowiring Mechanism \u4e2d\u7684\u5404\u7a2e Annotation\r\n4. AnnotationConfigApplicationContext\uff1a\u4f86\u6ce8\u5165\u4e00\u500b Bean \u5427\uff01\r\n5. ClassPathBeanDefinitionScanner \u8a8d\u8b58\u9019\u500b\u5e6b\u4f60\u6383\u5305\u7684\u6383\u5730\u50e7\r\n6. DefaultListableFactory -- IoC \u5bb9\u5668\u7684\u5927\u4e3b\u89d2\uff1a`getBean` \u662f\u600e\u9ebc\u904b\u4f5c\u7684\uff1f\r\n7. `createBean` \u5230\u5e95\u662f\u600e\u9ebc\u904b\u4f5c\u7684\uff1f\u5982\u4f55\u9078\u64c7\u6700\u9069\u914d\u7684\u5efa\u69cb\u5b50\uff1f\r\n8. BeanFactory \u8a2d\u8a08: \u770b\u770b Spring \u662f\u5982\u4f55\u9075\u5b88\u4ecb\u9762\u9694\u96e2\u539f\u5247\u7684\u3002\r\n9. \u770b\u770b Spring \u662f\u5982\u4f55\u64f4\u5145 @Configuration \u529f\u80fd\u7684 -- BeanDefinitionRegistryPostProcessor\r\n10. Zoom out! IoC-Based Container \u6a21\u5f0f\u8a9e\u8a00\uff1a\u7167\u8457\u9019\u500b\u6a21\u5f0f\u8a9e\u8a00\u7684\u601d\u8def\u9032\u884c\uff0c\u4f60\u5c31\u80fd\u81ea\u5e79\u51fa\u53e6\u4e00\u500b\u6709\u8457\u7279\u5b9a\u6027\u8cea\u7684 IoC Container\u3002\r\n\r\n\u9ad8\u6548\u7387\u7684\u601d\u8def\u80fd\u5e36\u8457\u4f60\u89e3\u6790\u8907\u96dc\u7684\u5927\u578b\u7cfb\u7d71\uff0c\u800c\u9019\u6b63\u662f\u6211\u5b78\u7fd2\u8edf\u9ad4\u8a2d\u8a08\u6642\u6700\u610f\u5916\u7684\u6536\u7a6b\u3002\r\n\u5e0c\u671b\u80fd\u85c9\u9019\u500b\u6a5f\u6703\u5206\u4eab\u7d66\u5927\u5bb6\uff0c\u6211\u5011\u4e0d\u898b\u4e0d\u6563\uff01\uff01", "description": null, "recording_license": "", "do_not_record": true, "persons": [{"code": "CFB7RT", "name": "\u6c34\u7403\u6f58", "avatar": "https://pretalx.com/media/avatars/CFB7RT_EKuVpqA.webp", "biography": "\u5927\u5bb6\u597d\uff0c\u6211\u662f\u6c34\u7403\u6f58\u3002\r\n\r\n\u6211\u4e3b\u4fee\u8edf\u9ad4\u8a2d\u8a08\u6a21\u5f0f\u3001\u6a21\u5f0f\u8a9e\u8a00\u3001\u8edf\u9ad4\u67b6\u69cb\u5b78\u4ee5\u53ca\u8edf\u9ad4\u5de5\u7a0b\uff08+\u9818\u57df\u9a45\u52d5\u8a2d\u8a08\uff09\u3002\r\n\u76ee\u524d\u6b63\u5168\u8077\u5275\u696d\u4e2d\uff0c\u672c\u8eab\u70ba\u53f0\u7063\u9818\u57df\u9a45\u52d5\u8a2d\u8a08\u793e\u7fa4\u7684\u5fd7\u5de5\uff0c\u4e26\u4e14\u6211\u5275\u8fa6\u4e86\u300c\u6c34\u7403\u8edf\u9ad4\u5b78\u9662\u300d\u793e\u7fa4\uff08\u88e1\u982d\u6709 5600 \u591a\u4f4d\u8edf\u9ad4\u5708\u5925\u4f34\uff09\u3002\u773c\u4e0b\u7684\u76ee\u7684\u662f\u5e0c\u671b\u80fd\u5efa\u7acb\u4e00\u500b\u65b0\u578b\u614b\u7684\u8edf\u9ad4\u793e\u7fa4\uff0c\u5c07\u4eba\u5011\u51dd\u805a\u5728\u4e00\u584a\uff0c\u4e26\u5f9e\u4e2d\u4e00\u8d77\u89e3\u653e\u96d9\u624b\u7684\u529b\u91cf\uff01\r\n\r\n\u6211\u6bcf\u9031\u90fd\u6703\u5728\u300c\u6c34\u7403\u8edf\u9ad4\u5b78\u9662\u300d\u793e\u7fa4\u4e2d\u5206\u4eab\u8edf\u9ad4\u5de5\u7a0b\u7b49\u65b9\u6cd5\u8ad6 ^^ \r\n\u5e73\u5747\u6bcf\u6b21\u90fd\u6703\u6709 100 \u591a\u4f4d\u89c0\u773e\u53c3\u52a0\uff0c\u5c31\u9019\u6a23\u7dad\u6301\u4e86\u4e00\u5e74\u591a\u4e86\u3002\u5206\u4eab\u77e5\u8b58\u5c0d\u6211\u4f86\u8aaa\u662f\u4e00\u4ef6\u6a02\u8da3\uff0c\u6211\u559c\u6b61\u82b1\u5f88\u591a\u6642\u9593\uff0c\u5c07\u6700\u8907\u96dc\u7684\u77e5\u8b58\uff0c\u900f\u904e\u67d0\u7a2e\u6280\u5de7\uff0c\u5c07\u5b83\u8b8a\u5f97\u7c21\u55ae\uff0c\u7136\u5f8c\u8b1b\u7d66\u6240\u6709\u9858\u610f\u8207\u6211\u4e00\u8d77\u6b23\u8cde\u77e5\u8b58\u3001\u5b78\u7fd2\u77e5\u8b58\u548c\u843d\u5730\u77e5\u8b58\u7684\u5925\u4f34\u5011\u3002\r\n\r\n\u9019\u5e7e\u5e74\u958b\u59cb\u8e34\u8e8d\u53c3\u52a0 Jcconf\uff0c\u7562\u7adf\u6211\u73fe\u5728\u662f\u4e00\u4f4d\u7121\u696d\u904a\u6c11\uff08i.e., \u5275\u696d\u4e2d\uff09\uff0c\u6bd4\u8f03\u6709\u6642\u9593\u80fd\u505a\u83dc\u7d66\u5927\u5bb6\u5403\uff0c\u6b61\u8fce\u5927\u5bb6\u8207\u6211\u4ea4\u6d41\uff0c\u8b1d\u8b1d\u3002", "public_name": "\u6c34\u7403\u6f58", "guid": "2df537f4-7c24-5b15-ab58-8042009e99b6", "url": "https://pretalx.com/jcconf-2023/speaker/CFB7RT/"}], "links": [], "feedback_url": "https://pretalx.com/jcconf-2023/talk/PWDV7Y/feedback/", "origin_url": "https://pretalx.com/jcconf-2023/talk/PWDV7Y/", "attachments": []}, {"guid": "b7d896e1-d07d-50e8-969b-0d5a6132a864", "code": "W99F7K", "id": 37533, "logo": null, "date": "2023-10-06T11:25:00+08:00", "start": "11:25", "duration": "00:10", "room": "401", "slug": "jcconf-2023-37533-break", "url": "https://pretalx.com/jcconf-2023/talk/W99F7K/", "title": "Break", "subtitle": "", "track": null, "type": "Session", "language": "zh-hant", "abstract": "-", "description": null, "recording_license": "", "do_not_record": false, "persons": [], "links": [], "feedback_url": "https://pretalx.com/jcconf-2023/talk/W99F7K/feedback/", "origin_url": "https://pretalx.com/jcconf-2023/talk/W99F7K/", "attachments": []}, {"guid": "a9aa08b5-cc0a-592d-b67e-b526a4f68315", "code": "7USYBV", "id": 36399, "logo": null, "date": "2023-10-06T11:35:00+08:00", "start": "11:35", "duration": "00:05", "room": "401", "slug": "jcconf-2023-36399-vmware", "url": "https://pretalx.com/jcconf-2023/talk/7USYBV/", "title": "\u5ba3\u50b3\u8b70\u7a0b\uff08VMWare\uff09", "subtitle": "", "track": "Promotion", "type": "Session", "language": "zh-hant", "abstract": "VMWare", "description": null, "recording_license": "", "do_not_record": false, "persons": [], "links": [], "feedback_url": "https://pretalx.com/jcconf-2023/talk/7USYBV/feedback/", "origin_url": "https://pretalx.com/jcconf-2023/talk/7USYBV/", "attachments": []}, {"guid": "1f0391d6-47ce-5d97-885d-8884e244cd0e", "code": "W9C3TL", "id": 35183, "logo": null, "date": "2023-10-06T11:40:00+08:00", "start": "11:40", "duration": "00:45", "room": "401", "slug": "jcconf-2023-35183-jakarta-ee-and-microprofile-open-cloud-native-java-apis-for-all", "url": "https://pretalx.com/jcconf-2023/talk/W9C3TL/", "title": "\ud83c\uddec\ud83c\udde7 \ud83c\udf9e\ufe0f Jakarta EE and MicroProfile: Open Cloud-Native Java APIs for All", "subtitle": "", "track": "401", "type": "Session", "language": "zh-hant", "abstract": "Jakarta EE is looking to \u201cbuild an open source ecosystem for cloud native enterprise Java\u201d while MicroProfile is \u201coptimizing enterprise Java for a microservices architecture\u201d. They are both open, collaborative, and community-driven initiatives looking to define and develop the next-generation of open cloud-native Java APIs for all \u2026 from developers, user groups, enthusiasts to vendors. In this session, we will take a look at how Jakarta EE and MicroProfile came about, what they offer to developers and users today, what they mean to you, what\u2019s next for open cloud-native Java APIs, and how you can get involved.", "description": null, "recording_license": "", "do_not_record": false, "persons": [{"code": "DYLPZC", "name": "Yee-Kang (YK) Chang", "avatar": "https://pretalx.com/media/avatars/DYLPZC_I25VBou.webp", "biography": "Yee-Kang (YK) Chang is an architect and developer advocate on IBM\u2019s application runtimes team. He works with Java and contributes to various OSS projects like Open Liberty, Eclipse LSP4Jakarta, and Eclipse LSP4MP. YK has presented sessions and ran workshops at various developer conferences like DevNexus, JCON and TDC both in person and online. He is keen to engage developers around the world and see how we can make life easier and better for developers.", "public_name": "Yee-Kang (YK) Chang", "guid": "8930cf6a-6c3d-5d57-a442-5761da23fbd7", "url": "https://pretalx.com/jcconf-2023/speaker/DYLPZC/"}], "links": [], "feedback_url": "https://pretalx.com/jcconf-2023/talk/W9C3TL/feedback/", "origin_url": "https://pretalx.com/jcconf-2023/talk/W9C3TL/", "attachments": [{"title": "Jakarta EE and MicroProfile - Open Cloud-Native Java APIs for All", "url": "/media/jcconf-2023/submissions/W9C3TL/resources/Jakarta_EE_and_MicroProfile_-_Open_Cloud-Native_gzsAfPe.pdf", "type": "related"}]}, {"guid": "6f63b354-c1b0-5439-ba01-8d18abbfd1a4", "code": "A7K9BQ", "id": 36623, "logo": null, "date": "2023-10-06T12:25:00+08:00", "start": "12:25", "duration": "01:00", "room": "401", "slug": "jcconf-2023-36623-lunch-and-break", "url": "https://pretalx.com/jcconf-2023/talk/A7K9BQ/", "title": "\ud83c\udf74Lunch and Break", "subtitle": "", "track": null, "type": "Session", "language": "zh-hant", "abstract": "-", "description": null, "recording_license": "", "do_not_record": false, "persons": [], "links": [], "feedback_url": "https://pretalx.com/jcconf-2023/talk/A7K9BQ/feedback/", "origin_url": "https://pretalx.com/jcconf-2023/talk/A7K9BQ/", "attachments": []}, {"guid": "9cdb1dfe-0fe4-5762-bd10-7c2044e93af8", "code": "NLT8LE", "id": 34996, "logo": null, "date": "2023-10-06T13:25:00+08:00", "start": "13:25", "duration": "00:15", "room": "401", "slug": "jcconf-2023-34996-spring-6http-interface", "url": "https://pretalx.com/jcconf-2023/talk/NLT8LE/", "title": "Spring 6\u7684http interface", "subtitle": "", "track": "401", "type": "Quickie", "language": "zh-hant", "abstract": "\u5148\u7c21\u55ae\u4ecb\u7d39Spring\u4ee5\u5f80\u90fd\u7528\u54ea\u4e9b\u65b9\u6cd5\u767c\u8d77http request, \u5982resttemplate\u6216webclient\r\n\u4ee5\u53ca\u8072\u660e\u5f0f\u7684http client, Spring Cloud OpenFeign\u3002\r\n\r\n\u63a5\u8457\u4ecb\u7d39Spring 6\u5e36\u4f86\u7684\u65b0\u7684\u8072\u660e\u5f0fhttp client, http interface\r\n\u6709\u54ea\u4e9b\u65b9\u6cd5\u4ee5\u53ca\u8a72\u5982\u4f55\u4f7f\u7528\u3002\r\n\r\n\u6700\u5f8c\u518d\u6bd4\u8f03http interface\u8207spring cloud openfeign\u7684\u5dee\u5225\u3002", "description": null, "recording_license": "", "do_not_record": false, "persons": [{"code": "YP9HWC", "name": "\u8a31\u5b50\u8b19", "avatar": null, "biography": "\u5de5\u4f5c\u7d93\u9a57\u4e3b\u8981\u662f\u91d1\u878d\u696d\u5f8c\u7aef\u7cfb\u7d71\u958b\u767c\r\n\r\n\u76ee\u524d\u5728\u570b\u6cf0\u91d1\u63a7 \u6578\u6578\u767c \u96f2\u7aef\u7b56\u7565\u767c\u5c55\u90e8\r\n\u64d4\u4efb\u5fae\u670d\u52d9\u958b\u767c\u5de5\u7a0b\u5e2b", "public_name": "\u8a31\u5b50\u8b19", "guid": "8fc51646-8dd6-5650-bf64-843d070b0151", "url": "https://pretalx.com/jcconf-2023/speaker/YP9HWC/"}], "links": [], "feedback_url": "https://pretalx.com/jcconf-2023/talk/NLT8LE/feedback/", "origin_url": "https://pretalx.com/jcconf-2023/talk/NLT8LE/", "attachments": [{"title": "\u6295\u5f71\u7247\u8349\u7a3f", "url": "/media/jcconf-2023/submissions/NLT8LE/resources/Spring_6%E7%9A%84http_interface_6mwezIY.pdf", "type": "related"}, {"title": "\u6295\u5f71\u7247", "url": "/media/jcconf-2023/submissions/NLT8LE/resources/Spring_6%E7%9A%84http_interface_I9htKNf.pdf", "type": "related"}]}, {"guid": "77ee1ee1-fb94-58f6-a41a-b7eebb1ebacb", "code": "8UGKD7", "id": 37536, "logo": null, "date": "2023-10-06T13:40:00+08:00", "start": "13:40", "duration": "00:05", "room": "401", "slug": "jcconf-2023-37536-break", "url": "https://pretalx.com/jcconf-2023/talk/8UGKD7/", "title": "Break", "subtitle": "", "track": null, "type": "Session", "language": "zh-hant", "abstract": "-", "description": null, "recording_license": "", "do_not_record": false, "persons": [], "links": [], "feedback_url": "https://pretalx.com/jcconf-2023/talk/8UGKD7/feedback/", "origin_url": "https://pretalx.com/jcconf-2023/talk/8UGKD7/", "attachments": []}, {"guid": "33ddd99a-1d16-5894-8631-8adbad7648e9", "code": "JXWCJ8", "id": 35176, "logo": null, "date": "2023-10-06T13:45:00+08:00", "start": "13:45", "duration": "00:15", "room": "401", "slug": "jcconf-2023-35176-fido--spring-authorization-server", "url": "https://pretalx.com/jcconf-2023/talk/JXWCJ8/", "title": "\u770b FIDO \u8207 Spring Authorization Server \u5982\u4f55\u65ac\u65b7\u5bc6\u78bc\u7684\u67b7\u9396\uff01", "subtitle": "", "track": "401", "type": "Quickie", "language": "zh-hant", "abstract": "\u5bc6\u78bc\u5df2\u6210\u70ba\u6211\u5011\u751f\u6d3b\u4e2d\u4e0d\u53ef\u907f\u514d\u7684\u4e00\u90e8\u5206\uff0c\u4f46FIDO \u8207Spring Authorization Server\u7684\u7d50\u5408\u537b\u8b93\u6211\u5011\u770b\u5230\u4e86\u7834\u9664\u5bc6\u78bc\u4f9d\u8cf4\u7684\u53ef\u80fd\u3002\u9019\u6b21\u6211\u5011\u5c07\u5e36\u4f60\u63a2\u8a0e\u5982\u4f55\u5229\u7528 FIDO \u7684\u7121\u5bc6\u78bc\u8a8d\u8b49(PASSWORDLESS AUTHENTICATION)\u8207Spring Authorization Server\u7684\u5275\u9020\u4e00\u500b\u66f4\u5b89\u5168\u3001\u66f4\u4fbf\u5229\u7684\u9a57\u8b49\u9ad4\u9a57\u3002\u6211\u5011\u5c07\u65ac\u65b7\u5bc6\u78bc\u7684\u67b7\u9396\uff0c\u8b93\u8eab\u4efd\u9a57\u8b49\u4e0d\u518d\u7e41\u7463\u3002\u5bc6\u78bc\u6642\u4ee3\u7684\u7d50\u675f\uff0c\u7121\u5bc6\u78bc\u6642\u4ee3\u7684\u958b\u59cb\uff0c\u5f9e\u9019\u88e1\u8d77\u6b65\u3002", "description": null, "recording_license": "", "do_not_record": true, "persons": [{"code": "AFYPQB", "name": "\u6731\u5c1a\u79ae", "avatar": "https://pretalx.com/media/avatars/AFYPQB_eAVHp1F.webp", "biography": "\u4efb\u8077\u65bc\u570b\u6cf0\u91d1\u63a7\u96f2\u7aef\u6280\u8853\u79d1\u6280\u8853\u7d44\u9577\r\n\u4e5f\u66fe\u7d93\u5728\u5730\u7aef\u6a5f\u623f\u8ddf\u5404\u7a2e\u8a2d\u5099\u6253\u6df7\u904e\u7684\uff0c\u4f46\u6709\u4e00\u5929\u7a81\u7136\u958b\u59cb\u5b78\u7fd2\u96f2\u7aef\u6280\u8853\uff0c\u5c31\u518d\u4e5f\u56de\u4e0d\u53bb\u7684\u958b\u767c\u8005\u3002", "public_name": "\u6731\u5c1a\u79ae", "guid": "00586af9-4a52-5f8e-8ac0-ee715e78895e", "url": "https://pretalx.com/jcconf-2023/speaker/AFYPQB/"}], "links": [], "feedback_url": "https://pretalx.com/jcconf-2023/talk/JXWCJ8/feedback/", "origin_url": "https://pretalx.com/jcconf-2023/talk/JXWCJ8/", "attachments": [{"title": "\u7c21\u5831", "url": "/media/jcconf-2023/submissions/JXWCJ8/resources/JCC23_slide_FIDO_9E8rTXD.pdf", "type": "related"}]}, {"guid": "de193a76-4625-5fac-8d1c-3f3d058d3990", "code": "QUZ3XR", "id": 37537, "logo": null, "date": "2023-10-06T14:00:00+08:00", "start": "14:00", "duration": "00:05", "room": "401", "slug": "jcconf-2023-37537-break", "url": "https://pretalx.com/jcconf-2023/talk/QUZ3XR/", "title": "Break", "subtitle": "", "track": null, "type": "Session", "language": "zh-hant", "abstract": "-", "description": null, "recording_license": "", "do_not_record": false, "persons": [], "links": [], "feedback_url": "https://pretalx.com/jcconf-2023/talk/QUZ3XR/feedback/", "origin_url": "https://pretalx.com/jcconf-2023/talk/QUZ3XR/", "attachments": []}, {"guid": "fab5c0f8-7397-50b7-96fa-d23a609392f6", "code": "MEW9C8", "id": 37488, "logo": null, "date": "2023-10-06T14:05:00+08:00", "start": "14:05", "duration": "00:05", "room": "401", "slug": "jcconf-2023-37488-autopass", "url": "https://pretalx.com/jcconf-2023/talk/MEW9C8/", "title": "\u5ba3\u50b3\u8b70\u7a0b\uff08Autopass\uff09", "subtitle": "", "track": "Promotion", "type": "Session", "language": "zh-hant", "abstract": "Autopass \u5275\u7acb\u65bc\u53f0\u7063\uff0c\u4ee5\u300c\u8eca\u4e3b\u7684\u9322\u5305\u300d\u70ba\u521d\u8877\u5c08\u6ce8\u65bc\u51fa\u884c\u91d1\u878d\u652f\u4ed8\u6574\u5408\u3002\u76ee\u524d\u8207\u5168\u53f0\u8d85\u904e 2,000 \u500b\u51fa\u884c\u5834\u666f\u5408\u4f5c\uff0c\u5176\u4e2d\u5305\u542b 600 \u5bb6\u4e2d\u6cb9\u76f4\u71df\u7ad9\u3001\u8d85\u904e 1,000 \u500b\u516c\u79c1\u6709\u505c\u8eca\u5834\u8207 16 \u500b\u7e23\u5e02\u7684\u8def\u908a\u505c\u8eca\u3002\u9664\u4e86\u52aa\u529b\u62d3\u5c55\u51fa\u884c\u5834\u666f\u4e4b\u5916\uff0c\u540c\u6642\u4e5f\u767c\u5c55\u81ea\u6709\u7522\u54c1\u300c\u2f9e\u2fc7\u5409\u300dApp\uff0c\u76ee\u524d\u7d2f\u7a4d\u6703\u54e1\u6578\u5df2\u8d85\u904e\u767e\u842c\u30022023\u5e74\u5c07\u696d\u52d9\u62d3\u5c55\u81f3\u6d77\u5916\uff0c\u76ee\u6a19\u8b93\u5168\u7403\u8eca\u4e3b\u90fd\u80fd\u4eab\u53d7\u5230\u5feb\u901f\u4e14\u4fbf\u5229\u7684\u51fa\u884c\u9ad4\u9a57\u3002\r\n\r\n\u5b98\u65b9\u7db2\u7ad9\uff1ahttps://www.autopass.xyz", "description": null, "recording_license": "", "do_not_record": false, "persons": [], "links": [], "feedback_url": "https://pretalx.com/jcconf-2023/talk/MEW9C8/feedback/", "origin_url": "https://pretalx.com/jcconf-2023/talk/MEW9C8/", "attachments": []}, {"guid": "c8ccc2de-b583-58e1-b3da-3aa2c01f2eca", "code": "ASTANH", "id": 35185, "logo": null, "date": "2023-10-06T14:10:00+08:00", "start": "14:10", "duration": "00:45", "room": "401", "slug": "jcconf-2023-35185-native-backend-application-with-graalvm", "url": "https://pretalx.com/jcconf-2023/talk/ASTANH/", "title": "Native Backend Application with GraalVM", "subtitle": "", "track": "401", "type": "Session", "language": "zh-hant", "abstract": "In this presentation, we will provide a brief overview of the current development of native applications using GraalVM. We will also demo Spring Native and Quarkus Native projects, sharing our experiences and lessons learned in their usage.", "description": null, "recording_license": "", "do_not_record": false, "persons": [{"code": "VZSMLQ", "name": "Vincent Huang", "avatar": "https://pretalx.com/media/avatars/VZSMLQ_1NwZ5oD.webp", "biography": "Vincent is a coder, speaker, mentor, and leader in the field. He specialize in the joint areas of JVM backend development and DevOps. Additionally, He has been recognized as a Google Developer Expert (Kotlin) and have expertise in this language.", "public_name": "Vincent Huang", "guid": "c907cc52-3c1c-515b-bac3-9acf47ed6993", "url": "https://pretalx.com/jcconf-2023/speaker/VZSMLQ/"}], "links": [], "feedback_url": "https://pretalx.com/jcconf-2023/talk/ASTANH/feedback/", "origin_url": "https://pretalx.com/jcconf-2023/talk/ASTANH/", "attachments": []}, {"guid": "09d28283-810e-55a3-9e79-538b58f43f5e", "code": "BJZMXJ", "id": 37534, "logo": null, "date": "2023-10-06T14:55:00+08:00", "start": "14:55", "duration": "00:10", "room": "401", "slug": "jcconf-2023-37534-break", "url": "https://pretalx.com/jcconf-2023/talk/BJZMXJ/", "title": "Break", "subtitle": "", "track": null, "type": "Session", "language": "zh-hant", "abstract": "-", "description": null, "recording_license": "", "do_not_record": false, "persons": [], "links": [], "feedback_url": "https://pretalx.com/jcconf-2023/talk/BJZMXJ/feedback/", "origin_url": "https://pretalx.com/jcconf-2023/talk/BJZMXJ/", "attachments": []}, {"guid": "2bf2fb20-51dd-505d-823d-e4ad8f7d9101", "code": "CXBUHN", "id": 35445, "logo": null, "date": "2023-10-06T15:05:00+08:00", "start": "15:05", "duration": "00:45", "room": "401", "slug": "jcconf-2023-35445-spring-data-dynamodb", "url": "https://pretalx.com/jcconf-2023/talk/CXBUHN/", "title": "spring-data-dynamodb \u63a5\u624b\u7dad\u8b77\u8207\u5347\u7d1a\u7d93\u9a57\u5206\u4eab", "subtitle": "", "track": "401", "type": "Session", "language": "zh-hant", "abstract": "\u5de5\u4f5c\u4e2d\u6709\u4f7f\u7528\u5230 Spring Data \u5b98\u65b9\u6587\u4ef6\u4e2d\u6240\u5217\u7684 community module - Spring Data DynamoDB\uff0c\u5f8c\u4f86 project \u7d93\u6b77 Spring Boot 2.x \u5347\u7d1a\u5230 3.x\uff0cAWS Java SDK \u4e5f\u65e9\u5df2\u6709 2.x \u7248\u672c\uff0c\u4f46\u662f Spring Data DynamoDB \u4ecd\u7136\u662f\u820a\u7248\uff0c\u4e14 repo \u6240\u6709\u8005\u5df2\u7d93\u4e00\u9663\u5b50\u6c92\u6709\u66f4\u65b0\uff0c\u5c31\u6c7a\u5b9a\u81ea\u5df1\u4f86\u52d5\u624b\u3002\r\n\r\n\u672c\u8b70\u7a0b\u5c07\u5206\u4eab\u7dad\u8b77\u548c\u5347\u7d1a Spring Data DynamoDB \u5e95\u5c64\u76f8\u4f9d library \u7684\u7d93\u9a57\uff0c\u4ee5\u53ca Spring Data DynamoDB \u5be6\u4f5c\u70ba Spring Data \u7684\u4e00\u500b module \u7684\u76f8\u95dc\u77e5\u8b58\u3002", "description": null, "recording_license": "", "do_not_record": false, "persons": [{"code": "9BFBEL", "name": "Jiayun Zhou", "avatar": null, "biography": ".", "public_name": "Jiayun Zhou", "guid": "aeff07a7-836d-5821-9ef0-30193e7f980c", "url": "https://pretalx.com/jcconf-2023/speaker/9BFBEL/"}], "links": [], "feedback_url": "https://pretalx.com/jcconf-2023/talk/CXBUHN/feedback/", "origin_url": "https://pretalx.com/jcconf-2023/talk/CXBUHN/", "attachments": [{"title": "\u7c21\u5831", "url": "/media/jcconf-2023/submissions/CXBUHN/resources/JCC23_jiayun_7lkJfgU.pdf", "type": "related"}]}, {"guid": "c83ea8d1-6b34-5532-87c6-055665c29750", "code": "NHJGA9", "id": 36624, "logo": null, "date": "2023-10-06T15:50:00+08:00", "start": "15:50", "duration": "00:30", "room": "401", "slug": "jcconf-2023-36624-tea-time", "url": "https://pretalx.com/jcconf-2023/talk/NHJGA9/", "title": "\u2615\ufe0fTea Time", "subtitle": "", "track": null, "type": "Session", "language": "zh-hant", "abstract": "-", "description": null, "recording_license": "", "do_not_record": false, "persons": [], "links": [], "feedback_url": "https://pretalx.com/jcconf-2023/talk/NHJGA9/feedback/", "origin_url": "https://pretalx.com/jcconf-2023/talk/NHJGA9/", "attachments": []}, {"guid": "57d06d34-361f-5f5c-9b86-80d4308bf3f0", "code": "Q7D8JY", "id": 34883, "logo": null, "date": "2023-10-06T16:20:00+08:00", "start": "16:20", "duration": "00:45", "room": "401", "slug": "jcconf-2023-34883-refactoring-to-serverless", "url": "https://pretalx.com/jcconf-2023/talk/Q7D8JY/", "title": "Refactoring to Serverless", "subtitle": "", "track": "401", "type": "Session", "language": "zh-hant", "abstract": "\u5728\u9019\u500b\u8b70\u7a0b\u4e2d\uff0c \u4e3b\u8981\u6703\u63d0\u5230 Serverless\u5728\u63d0\u4f9b\u5feb\u901f\u5efa\u69cb\u61c9\u7528\u7cfb\u7d71\u6642\u5e36\u4f86\u7684\u5e6b\u52a9\uff0c \u4e26\u8a66\u8457\u601d\u8003\u65e2\u7136\u662f\u4ee5 FaaS\u7684\u7684\u8173\u5ea6\u5728\u505a\u958b\u767c\uff0c\u52e2\u5fc5\u6703\u6709\u975e\u5e38\u591a\u7684\u7cfb\u7d71\u9593\u901a\u8a0a\u7684\u8a71\u984c\u9700\u8981\u95dc\u5fc3\u3002\u56e0\u6b64\uff0c\u6211\u5011\u61c9\u7576\u4e5f\u7406\u89e3\u5982\u4f55\u505a\u597d\u4e8b\u4ef6\u9a45\u52d5\u958b\u767c\u7684\u6e96\u5099\uff0c\u5229\u7528\u7d93\u5178\u7684\u4e8b\u4ef6\u89f8\u767c\u8207\u6574\u5408\u6a21\u5f0f\u4f86\u505a\u8cc7\u6599\u6d41\u7684\u50b3\u905e\uff0c\u4e26\u4e14\u4e5f\u8981\u95dc\u5fc3\u6574\u9ad4\u7684\u57fa\u790e\u8a2d\u65bd\u5982\u4f55\u81ea\u52d5\u5316\u3002", "description": null, "recording_license": "", "do_not_record": false, "persons": [{"code": "JBCJ7Z", "name": "Kim Kao", "avatar": "https://pretalx.com/media/avatars/JBCJ7Z_bqwprwZ.webp", "biography": "\u4eba\u751f\u5df2\u7d93\u88ab\u826f\u597d\u67b6\u69cb\u7684\u4e09\u5bf6\u7238\uff0c\u73fe\u4efb\u8077\u65bc AWS \u64d4\u4efb\u8cc7\u6df1\u89e3\u6c7a\u65b9\u6848\u67b6\u69cb\u5e2b\uff0c\u4e3b\u8981\u95dc\u6ce8\u5728\u958b\u767c\u8005\u5c08\u5bb6\u52a0\u901f\u8a08\u756b (Developer Acceleration, DevAx)\uff0c\u540c\u6642\u4e5f\u662f\u53f0\u7063\u9818\u57df\u9a45\u52d5\u8a2d\u8a08\u793e\u7fa4 (DDD Taiwan Community) \u767c\u8d77\u4eba\u4e4b\u4e00\u3002\u81f4\u529b\u65bc\u6295\u5165\u5927\u773e\u5c0d\u65bc Sociotechnical \u7684\u5171\u9cf4\uff0c\u63a8\u52d5\u4f01\u696d\u900f\u904e DDD \u8207\u4fbf\u6377\u7684\u96f2\u7aef\u670d\u52d9\uff0c\u6253\u9020\u66f4\u9069\u5207\u7684\u7cfb\u7d71\u65b9\u6848\uff0c\u89e3\u6c7a\u771f\u5207\u7684\u5546\u52d9\u554f\u984c\u3002", "public_name": "Kim Kao", "guid": "f8a7d567-ec18-510d-b6e7-1372f6f1f0a0", "url": "https://pretalx.com/jcconf-2023/speaker/JBCJ7Z/"}], "links": [], "feedback_url": "https://pretalx.com/jcconf-2023/talk/Q7D8JY/feedback/", "origin_url": "https://pretalx.com/jcconf-2023/talk/Q7D8JY/", "attachments": []}, {"guid": "a78276fb-ced4-563b-b668-2573c112f886", "code": "ZPWJQN", "id": 37535, "logo": null, "date": "2023-10-06T17:05:00+08:00", "start": "17:05", "duration": "00:10", "room": "401", "slug": "jcconf-2023-37535-break", "url": "https://pretalx.com/jcconf-2023/talk/ZPWJQN/", "title": "Break", "subtitle": "", "track": null, "type": "Session", "language": "zh-hant", "abstract": "-", "description": null, "recording_license": "", "do_not_record": false, "persons": [], "links": [], "feedback_url": "https://pretalx.com/jcconf-2023/talk/ZPWJQN/feedback/", "origin_url": "https://pretalx.com/jcconf-2023/talk/ZPWJQN/", "attachments": []}, {"guid": "72d231d0-843f-537b-a369-8312643afac1", "code": "VHRDG8", "id": 37167, "logo": null, "date": "2023-10-06T17:15:00+08:00", "start": "17:15", "duration": "00:45", "room": "401", "slug": "jcconf-2023-37167-virtual-threads", "url": "https://pretalx.com/jcconf-2023/talk/VHRDG8/", "title": "\u8a8d\u8b58 Virtual Threads", "subtitle": "", "track": "401", "type": "Session", "language": "zh-hant", "abstract": "Java Thread \u5f9e\u65e9\u671f\u5c31\u958b\u59cb\u5229\u7528OS Thread\uff0c\u5728\u55ae\u6838\u5fc3\u5230\u73fe\u5728\u7684\u591a\u6838\u5fc3\u7684\u8b8a\u9077\u904e\u7a0b\u4e2d\uff0c\u7d50\u5408concurrent\u51fd\u5f0f\u5eab\u8b93Java\u5728\u958b\u767c\u8a9e\u8a00\u7684\u9078\u64c7\u4e0a\u5177\u6709\u4e86\u91cd\u8981\u512a\u52e2\u3002\u5118\u7ba1OS Thread\u88ab\u7a31\u70ba\u8f15\u91cf\u7d1a\uff0c\u5be6\u969b\u4e0a\u4e26\u4e0d\u5b8c\u5168\u5982\u6b64\u3002\u70ba\u4e86\u61c9\u5c0dHigh Throughput\u7684\u9700\u6c42\uff0c\u6211\u5011\u4e0d\u80fd\u7121\u9650\u5236\u7684\u5efa\u7acbThread\uff0c\r\n\u800c\u5e02\u9762\u4e0a\u4e5f\u51fa\u73fe\u4e86\u5404\u7a2e\u975e\u540c\u6b65\u7684\u65b9\u6cd5\u3002\u5728\u9019\u7a2e\u60c5\u6cc1\u4e0b\uff0cVirtual Threads\u88ab\u65b0\u589e\u5230JDK\u4e2d\uff0c\u8a66\u5716\u63d0\u4f9b\u66f4\u7c21\u55ae\u7684\u65b9\u5f0f\u4f86\u5be6\u73feHigh Throughput\u3002\u672c\u8b70\u7a0b\u5c07\u4ecb\u7d39JDK 21\u6b63\u5f0f\u5f15\u5165\u7684Virtual Threads\uff0c\u4e26\u63a2\u8a0e\u5176\u80cc\u666f\u548c\u5982\u4f55\u6b63\u78ba\u5229\u7528\u3002", "description": null, "recording_license": "", "do_not_record": true, "persons": [{"code": "FAEDA3", "name": "kojilin", "avatar": "https://pretalx.com/media/avatars/FAEDA3_VqmjnCt.webp", "biography": "Taiwan Java User Group\u7ba1\u7406\u8005\u4e4b\u4e00\uff0c\u5f9e\u51fa\u793e\u6703\u5f8c\u5c31\u5e7e\u4e4e\u90fd\u4ee5Java\u70ba\u4e3b\uff0c\u4e0d\u7ba1\u4ec0\u9ebc\u90fd\u6703\u60f3\u7528Java\u4f86\u5b8c\u6210\u7684\u5de5\u7a0b\u5e2b\u3002\u73fe\u5728\u5728LINE Fukuoka\u64d4\u4efbSenior Manager\u3002", "public_name": "kojilin", "guid": "eb2124ff-23d4-5b85-a974-3cd110773dc5", "url": "https://pretalx.com/jcconf-2023/speaker/FAEDA3/"}], "links": [], "feedback_url": "https://pretalx.com/jcconf-2023/talk/VHRDG8/feedback/", "origin_url": "https://pretalx.com/jcconf-2023/talk/VHRDG8/", "attachments": []}], "402AB": [{"guid": "94ffde38-0be6-5b48-bc7e-726bcdf5124d", "code": "GP8YBM", "id": 34459, "logo": null, "date": "2023-10-06T10:40:00+08:00", "start": "10:40", "duration": "00:45", "room": "402AB", "slug": "jcconf-2023-34459-kotlin-multiplatform--compose-multiplatform--ui", "url": "https://pretalx.com/jcconf-2023/talk/GP8YBM/", "title": "\u5f9e Kotlin Multiplatform \u5230 Compose Multiplatform\uff1a\u5728\u591a\u5e73\u53f0\u9593\u8f15\u9b06\u5171\u7528\u696d\u52d9\u908f\u8f2f\u8207 UI \u4ecb\u9762", "subtitle": "", "track": "402AB", "type": "Session", "language": "zh-hant", "abstract": "\u4f7f\u7528 Kotlin \u7684\u591a\u5e73\u53f0\u767c\u4f48\u80fd\u529b\uff0c\u5df2\u7d93\u6210\u70ba\u5728\u4e0d\u540c\u5e73\u53f0\u9593\u5171\u7528\u696d\u52d9\u908f\u8f2f\u7684\u7a69\u5065\u89e3\u6c7a\u65b9\u6848\u3002\u7136\u800c\uff0c\u65e9\u5148 UI \u4ecd\u9700\u8981\u5728\u5404\u5e73\u53f0\u4ee5\u539f\u751f\u5143\u4ef6\u9032\u884c\u5be6\u4f5c\uff0c\u589e\u52a0\u4e86\u958b\u767c\u9580\u6abb\u3002\u96a8\u8457 Android \u5718\u968a\u63a8\u51fa Jetpack Compose\uff0c\u70ba UI \u958b\u767c\u8fce\u4f86\u4e86\u4e00\u689d\u65b0\u8def\u5f91\uff0cJetBrains \u5718\u968a\u9078\u4e2d\u4e26\u5c07\u5176\u79fb\u690d\u70ba Kotlin Multiplatform \u6280\u8853\u7684\u4e00\u90e8\u5206\uff0c\u5f62\u6210\u4e86\u8de8\u5e73\u53f0\u7684 UI \u89e3\u6c7a\u65b9\u6848 - Compose Multiplatform\u3002\u73fe\u5728\uff0c\u5728 Android\u3001Desktop\u3001Web \u7b49\u5e73\u53f0\u4e0a\u90fd\u53ef\u4ee5\u4f7f\u7528 Compose \u8a9e\u6cd5\u4f86\u5be6\u4f5c UI \u4ecb\u9762\u3002\u9019\u7a2e\u591a\u5e73\u53f0\u958b\u767c\u67b6\u69cb\u70ba\u958b\u767c\u8005\u63d0\u4f9b\u4e86\u5f48\u6027\uff0c\u53ef\u4ee5\u6839\u64da\u9700\u6c42\u9748\u6d3b\u8abf\u6574\u7a0b\u5f0f\u78bc\u7684\u5171\u7528\u6bd4\u4f8b\u3002\r\n\r\n\u65e5\u524d\u5728 KotlinConf\u201923 \u5927\u6703\u4e0a\uff0cKotlin \u5718\u968a\u9032\u4e00\u6b65\u516c\u4f48\u4e86 Compose for iOS (Alpha \u7248)\uff0c\u4f7f\u958b\u767c\u8005\u80fd\u5920\u5728\u958b\u767c Mobile UI \u6642\u4f7f\u7528 Compose \u8a9e\u6cd5\uff0c\u4f7f\u5f97\u591a\u5e73\u53f0\u958b\u767c\u7684\u6700\u5f8c\u4e00\u584a\u62fc\u5716\u5f97\u4ee5\u5b8c\u6574\uff01\u5728\u9019\u5834\u5206\u4eab\u4e2d\uff0c\u5c07\u5f9e\u696d\u52d9\u908f\u8f2f\u7684\u5171\u7528\u958b\u59cb\uff0c\u4e00\u8def\u5f9e Server-Side\u3001\u5169\u500b Mobile \u5e73\u53f0\u5230 Desktop\uff0c\u793a\u7bc4\u5982\u4f55\u900f\u904e Kotlin Multiplatform \u548c Compose Multiplatform \u7684\u7d9c\u5408\u61c9\u7528\uff0c\u5728\u591a\u500b\u5e73\u53f0\u4e0a\u5efa\u7acb\u7d71\u4e00\u7684\u524d\u7aef\u548c\u5f8c\u7aef\u61c9\u7528\u3002\u807d\u5b8c\u9019\u5834\u5206\u4eab\u5f8c\uff0c\u5c07\u80fd\u66f4\u6df1\u5165\u5730\u4e86\u89e3 Kotlin Multiplatform \u751f\u614b\u7cfb\uff0c\u4e26\u5b78\u7fd2\u5728\u591a\u5e73\u53f0\u4e0a\u5171\u4eab\u524d\u5f8c\u7aef\u7a0b\u5f0f\u78bc\u7684\u958b\u767c\u6d41\u7a0b\u8207\u6280\u8853\u7d30\u7bc0\u3002", "description": null, "recording_license": "", "do_not_record": false, "persons": [{"code": "JL9ME8", "name": "\u8303\u8056\u4f51", "avatar": "https://pretalx.com/media/avatars/JL9ME8_D9NU8WS.webp", "biography": "JetBrains \u6280\u8853\u50b3\u6559\u58eb\uff0c\u8ca0\u8cac\u63a8\u5ee3 JetBrains IDE \u53ca Kotlin \u7a0b\u5f0f\u8a9e\u8a00\u3002\u5e73\u6642\u9189\u5fc3\u65bc\u6280\u8853\u7814\u7a76\uff0c\u6b77\u4efb\u8edf\u9ad4\u516c\u53f8\u8a2d\u8a08\u5e2b\u3001\u958b\u767c\u8005\u53ca\u7814\u7a76\u54e1\uff0c\u81f4\u529b\u65bc\u5c07\u8907\u96dc\u7684\u6280\u8853\u540d\u8a5e\u7528\u901a\u4fd7\u6613\u61c2\u7684\u65b9\u5f0f\u8b93\u65b0\u624b\u4e5f\u80fd\u5438\u6536\u3002\u5de5\u4f5c\u4e4b\u9918\u4e5f\u662f\u591a\u5e74\u6280\u8853\u793e\u7fa4\u5fd7\u5de5\uff0c\u7a4d\u6975\u53c3\u8207 Kotlin \u793e\u7fa4\u904b\u4f5c\u3002\u81ea 2020 \u5e74\u4ee5\u4f86\u8207 Taiwan Kotlin User Group \u5408\u4f5c\uff0c\u9678\u7e8c\u8209\u8fa6 Kotlin \u8b80\u66f8\u6703\u3001\u7df4\u529f\u5834\u53ca Kotlin \u4e2d\u6587\u958b\u767c\u8005\u5927\u6703\uff0c\u4e26\u6bcf\u5e74\u865f\u53ec\u5925\u4f34\u4e00\u8d77\u53c3\u8207 iT \u90a6\u5e6b\u5fd9\u9435\u4eba\u8cfd\uff0c\u4eab\u53d7\u4e92\u76f8\u63a8\u5751\u586b\u5751\u7684\u6a02\u8da3\u3002", "public_name": "\u8303\u8056\u4f51", "guid": "25e28465-4c2d-5970-8d4f-084fde5b3fa2", "url": "https://pretalx.com/jcconf-2023/speaker/JL9ME8/"}], "links": [], "feedback_url": "https://pretalx.com/jcconf-2023/talk/GP8YBM/feedback/", "origin_url": "https://pretalx.com/jcconf-2023/talk/GP8YBM/", "attachments": []}, {"guid": "e9d6f510-1a66-5e07-8bdc-fe128991921a", "code": "CAN7C8", "id": 34780, "logo": null, "date": "2023-10-06T11:40:00+08:00", "start": "11:40", "duration": "00:45", "room": "402AB", "slug": "jcconf-2023-34780-kotlin--java", "url": "https://pretalx.com/jcconf-2023/talk/CAN7C8/", "title": "Kotlin \u8207 Java \u7684\u4ea4\u4e92\u4f7f\u7528\u5c0f\u79d8\u65b9", "subtitle": "", "track": "402AB", "type": "Session", "language": "zh-hant", "abstract": "Kotlin \u662f\u5728 Java \u7684\u57fa\u790e\u4e0b\uff0c\u6240\u8a2d\u8a08\u7684\u5168\u65b0\u8a9e\u8a00\u3002\u4e14 Kotlin \u662f 100% \u76f8\u5bb9\u65bc Java\uff0c\u6240\u4ee5\u5728 Kotlin \u4e2d\u6211\u5011\u53ef\u4ee5\u8f15\u9b06\u7684\u4f7f\u7528 Java \u51fd\u5f0f\u5eab\u3002\u4f46\u53cd\u904e\u4f86\u4e5f\u6210\u7acb\u55ce\uff1f\r\nKotlin \u63d0\u4f9b\u4e86\u8a31\u591a\u73fe\u4ee3\u5316\u7684\u8a9e\u8a00\u7279\u6027\uff0c\u82e5\u6211\u5011\u60f3\u5728 Java \u4e2d\u4f7f\u7528\u9019\u4e9b\u5c08\u5c6c\u65bc Kotlin \u7684\u7279\u6027\uff0c\u6211\u5011\u8a72\u5982\u4f55\u52d5\u624b\u5462\uff1f\r\n\u5728\u672c\u5834\u5206\u4eab\u4e2d\uff0c\u5c07\u8207\u5404\u4f4d\u5206\u4eab\u5982\u4f55\u5728 Java \u4e2d\u4f7f\u7528 Kotlin\uff0c\u4ee5\u53ca\u9700\u8981\u6ce8\u610f\u7684\u5730\u65b9\u3002", "description": null, "recording_license": "", "do_not_record": false, "persons": [{"code": "JWDK8N", "name": "Andy Lu", "avatar": "https://pretalx.com/media/avatars/JWDK8N_rScLq4v.webp", "biography": null, "public_name": "Andy Lu", "guid": "f9f4cf46-93e6-5316-badf-38884d1b8f45", "url": "https://pretalx.com/jcconf-2023/speaker/JWDK8N/"}], "links": [], "feedback_url": "https://pretalx.com/jcconf-2023/talk/CAN7C8/feedback/", "origin_url": "https://pretalx.com/jcconf-2023/talk/CAN7C8/", "attachments": []}, {"guid": "9dbadb0d-0872-5ba6-8576-e12af6376597", "code": "3BVWR3", "id": 32845, "logo": null, "date": "2023-10-06T13:25:00+08:00", "start": "13:25", "duration": "00:15", "room": "402AB", "slug": "jcconf-2023-32845-how-junior-engineers-can-utilize-chatgpt", "url": "https://pretalx.com/jcconf-2023/talk/3BVWR3/", "title": "How Junior Engineers Can Utilize ChatGPT", "subtitle": "", "track": "402AB", "type": "Quickie", "language": "en", "abstract": "\u8eab\u70ba Junior \u5de5\u7a0b\u5e2b\uff0c\u5728\u9047\u5230\u96e3\u4ee5\u201cGoogle\u201d\u7684\u554f\u984c\u6642\uff0c\u7531\u65bc\u7d93\u9a57\u4e0d\u8db3\u6216\u89c0\u5ff5\u4e0d\u6e05\u800c\u7121\u5f9e\u4e0b\u624b\u3002\u82e5\u662f\u4ee5\u5f80\u53ea\u80fd\u8acb\u6559Senior \u5de5\u7a0b\u5e2b\uff0c \u4f46 ChatGPT \u7684\u51fa\u73fe\u63d0\u4f9b\u4e86\u53e6\u4e00\u500b\u9078\u64c7\u3002\r\n\u5728\u9019\u5834\u5206\u4eab\u4e2d\uff0c\u6211\u5c07\u4ee5\u5de5\u4f5c\u4e2d\u9047\u5230\u7684\u5e7e\u500b Java web \u958b\u767c\u554f\u984c\u70ba\u4f8b\uff0c\u8b1b\u89e3\u5982\u4f55\u904b\u7528 ChatGPT \u627e\u5230\u89e3\u6c7a\u65b9\u6848\u7684\u6d41\u7a0b\u3002", "description": null, "recording_license": "", "do_not_record": false, "persons": [{"code": "WVSYVM", "name": "Samuel Luo", "avatar": null, "biography": "\u6b63\u52aa\u529b\u5f9e Junior \u6210\u9577\u70ba Senior \u4e2d\uff0c\u76ee\u524d\u5728\u570b\u6cf0\u4e16\u83ef\u9280\u884c\u7684\u7db2\u9280 App \u64d4\u4efb Java \u5de5\u7a0b\u5e2b\u3002", "public_name": "Samuel Luo", "guid": "6508950c-4dbd-5771-b292-cc7b48939ab7", "url": "https://pretalx.com/jcconf-2023/speaker/WVSYVM/"}], "links": [], "feedback_url": "https://pretalx.com/jcconf-2023/talk/3BVWR3/feedback/", "origin_url": "https://pretalx.com/jcconf-2023/talk/3BVWR3/", "attachments": []}, {"guid": "21e708b1-62f8-54f6-acdd-e01a4925528e", "code": "KQKS3R", "id": 32637, "logo": null, "date": "2023-10-06T13:45:00+08:00", "start": "13:45", "duration": "00:15", "room": "402AB", "slug": "jcconf-2023-32637-lombok", "url": "https://pretalx.com/jcconf-2023/talk/KQKS3R/", "title": "\"\u5abd\u4f60\u770b\uff01\u6211\u6c92\u6709\u7528lombok\u5594\"", "subtitle": "", "track": "402AB", "type": "Quickie", "language": "en", "abstract": "\u6dfa\u8ac7Lombok\uff0c\u539f\u7406\u3001\u5e38\u7528Annotation\u548c\u512a\u7f3a\u9ede", "description": null, "recording_license": "", "do_not_record": false, "persons": [{"code": "G3GGLH", "name": "\u9ec3\u7d2b\u8335", "avatar": null, "biography": null, "public_name": "\u9ec3\u7d2b\u8335", "guid": "ab31d177-b070-59a1-9926-f47db920813b", "url": "https://pretalx.com/jcconf-2023/speaker/G3GGLH/"}], "links": [], "feedback_url": "https://pretalx.com/jcconf-2023/talk/KQKS3R/feedback/", "origin_url": "https://pretalx.com/jcconf-2023/talk/KQKS3R/", "attachments": [{"title": "\u6295\u5f71\u7c21\u5831", "url": "/media/jcconf-2023/submissions/KQKS3R/resources/lombokFinalVersion_R2GVpc3.pdf", "type": "related"}]}, {"guid": "b8b9e382-6457-569c-9cb6-52cc6949b027", "code": "M7EBF3", "id": 32782, "logo": null, "date": "2023-10-06T14:10:00+08:00", "start": "14:10", "duration": "00:45", "room": "402AB", "slug": "jcconf-2023-32782-arrow-kt--kotlin--fp", "url": "https://pretalx.com/jcconf-2023/talk/M7EBF3/", "title": "\u5f9e Arrow KT \u8ac7\u5177 Kotlin \u98a8\u683c\u7684 FP", "subtitle": "", "track": "402AB", "type": "Session", "language": "zh-hant", "abstract": "Arrow KT 2.0 \u6e96\u5099\u8981\u51fa\u4f86\u4e86\u3002\u5f9e\u4e00\u958b\u59cb\u7684 0.x \u7684 pure FP \u98a8\u683c\u5230 2.0 \u9762\u5411 Kotlin \u98a8\u683c\uff0c\u4e00\u8d77\u4f86\u8a0e\u8ad6\u9019\u6a23\u6f14\u8b8a\u3002\u8981\u5982\u4f55\u61c9\u7528 Arrow KT \u5beb\u51fa\u66f4\u7a69\u56fa\u7684\u7a0b\u5f0f\u78bc", "description": null, "recording_license": "", "do_not_record": false, "persons": [{"code": "EKBKNK", "name": "Brandy Chang", "avatar": "https://pretalx.com/media/avatars/EKBKNK_uAQlSJi.webp", "biography": "10\u591a\u5e74\u5f8c\u7aef\u958b\u767c\uff0c\u4e3b\u529b\u662f Kotlin x Java backend\u3002\u5728\u9019\u5927 Cloud Native \u6642\u4ee3\uff0c\u90fd\u7565\u61c2\u7565\u61c2\u7684\u96dc\u5de5\u3002", "public_name": "Brandy Chang", "guid": "690273dc-16df-5523-9157-3b3d4f492d20", "url": "https://pretalx.com/jcconf-2023/speaker/EKBKNK/"}], "links": [], "feedback_url": "https://pretalx.com/jcconf-2023/talk/M7EBF3/feedback/", "origin_url": "https://pretalx.com/jcconf-2023/talk/M7EBF3/", "attachments": []}, {"guid": "57d7ff5e-84fd-56e4-a95d-ee42a8815c09", "code": "MT9BYA", "id": 34777, "logo": null, "date": "2023-10-06T15:05:00+08:00", "start": "15:05", "duration": "00:45", "room": "402AB", "slug": "jcconf-2023-34777-javalin--java--kotlin", "url": "https://pretalx.com/jcconf-2023/talk/MT9BYA/", "title": "\u63a2\u7d22 Javalin\uff1a\u4e00\u500b\u8f15\u91cf\u7d1a Java \u548c Kotlin \u7db2\u9801\u6846\u67b6", "subtitle": "", "track": "402AB", "type": "Session", "language": "zh-hant", "abstract": "Javalin\u662f\u4e00\u500b\u8f15\u5de7\u4e14\u6613\u7528\u7684Java\u548cKotlin\u7db2\u9801\u6846\u67b6\uff0c\u672c\u6f14\u8b1b\u5c07\u6df1\u5165\u4ecb\u7d39\u5176\u7279\u9ede\u548c\u512a\u52e2\uff0c\u5305\u62ec\u7c21\u6f54API\u3001\u9748\u6d3b\u8def\u7531\u548c\u73fe\u4ee3\u958b\u767c\u3002\u8b93\u60a8\u5feb\u901f\u69cb\u5efa\u9ad8\u6548\u7db2\u9801\u61c9\u7528\u7a0b\u5f0f\u3002", "description": null, "recording_license": "", "do_not_record": false, "persons": [{"code": "VKYCZB", "name": "Recca Chao", "avatar": "https://pretalx.com/media/avatars/VKYCZB_qTFRozH.webp", "biography": "\u63a8\u5ee3\u7db2\u7ad9\u958b\u767c\uff0c\u5305\u542b Laravel \u548c Kotlin \u5f8c\u7aef\u64b0\u5beb\u3002Taiwan Kotlin User Group \u7ba1\u7406\u54e1\u3002", "public_name": "Recca Chao", "guid": "67680c60-7ba6-5468-a929-e056b06d214a", "url": "https://pretalx.com/jcconf-2023/speaker/VKYCZB/"}], "links": [], "feedback_url": "https://pretalx.com/jcconf-2023/talk/MT9BYA/feedback/", "origin_url": "https://pretalx.com/jcconf-2023/talk/MT9BYA/", "attachments": []}, {"guid": "a9246a4a-a303-5ea4-bb7a-06909445ca51", "code": "Q3E9VE", "id": 33935, "logo": null, "date": "2023-10-06T16:20:00+08:00", "start": "16:20", "duration": "00:45", "room": "402AB", "slug": "jcconf-2023-33935-ktor", "url": "https://pretalx.com/jcconf-2023/talk/Q3E9VE/", "title": "\u7528 Ktor \u8f15\u9b06\u6253\u9020\u4e00\u500b\u5c08\u5c6c\u81ea\u5df1\u7684\u96f2\u7aef\u884c\u52d5\u52a9\u7406\u5427\uff5e", "subtitle": "", "track": "402AB", "type": "Session", "language": "zh-hant", "abstract": "\u524d\u5e7e\u5e74\u51fa\u73fe\u7684 Ktor\uff0c\u662f\u4e00\u500b\u57fa\u65bc Kotlin \u7a0b\u5f0f\u8a9e\u8a00\u7684\u975e\u540c\u6b65 (asynchronous) \u5f8c\u7aef\u6846\u67b6\uff0c\u4e0d\u50c5\u80fd\u55ae\u7368\u7576\u6210\u4e00\u500bServer Side \u4f7f\u7528\uff0c\u4e5f\u80fd\u7528 Ktor/Kotlin \u5beb Web\u3002\u773e\u6240\u7686\u77e5\uff0cKotlin \u662f Google \u5b98\u65b9\u6307\u5b9a\u958b\u767c Android \u7684\u4e3b\u8981\u8a9e\u8a00\u4e4b\u4e00\uff0cAndroid \u9019\u5e7e\u5e74\u51fa\u73fe\u7684 Jetpack Compose \u76ee\u524d\u4e5f\u671d Compose Multiplatform (for Android, iOS, desktop, and web.) \u7684\u65b9\u5411\u5728\u767c\u5c55\u3002\r\n\r\nKtor \u53ef\u7528\u7684 UI Framework\uff0c\u9664\u4e86\u5efa\u7acb\u65b0\u5c08\u6848\u6642\u7684 Templating \u53ef\u4ee5\u9078\u64c7\u4e4b\u5916\uff0cCompose Multiplatform + Ktor \u4e5f\u662f\u4e00\u500b\u4e0d\u932f\u7684\u9078\u64c7\u3002\u7576\u7136\uff0c\u6700\u5f8c\u5c31\u662f\u5f97\u5c07 Ktor deploy \u5230\u96f2\u7aef\u5e73\u53f0\uff08\u6703\u5f9e GCP\u3001Azure\u3001AWS...\u7b49\u7b49\u64c7\u4e00\uff09\u3002", "description": null, "recording_license": "", "do_not_record": false, "persons": [{"code": "BXVCBL", "name": "\u694a\u8212\u5b89", "avatar": "https://pretalx.com/media/avatars/BXVCBL_JlEuFyB.webp", "biography": "\u300a\u958b\u767c\u804a\u5929\u6a5f\u5668\u4eba\uff0c\u6bd4\u4f60\u60f3\u7684\u9084\u7c21\u55ae\uff01\u300b\u4e00\u66f8\u4f5c\u8005\r\nhttps://www.tenlong.com.tw/products/9786267146521\r\n\r\n\u66fe\u4ee5 Kotlin / Ktor \u5beb\u904e\u804a\u5929\u6a5f\u5668\u4eba\uff0c\u4e14\u5f8c\u88fd\u6210\u6559\u5b78\u5f71\u7247\uff1a\r\nhttps://www.youtube.com/playlist?list=PLXJaMEPasdmn9ZcyewUrJisS8Hp5HWjMp\r\nhttps://www.youtube.com/playlist?list=PLXJaMEPasdmlw7LRSG0hJE4Aov3ZZ8lM8\r\n\r\n\u5076\u723e\u6703\u767c\u8868\u5b78\u7fd2\u5fc3\u5f97\uff1a\r\nhttps://medium.com/@chinchilla-shuan\r\n\r\n\u8d70\u4f4e\u8abf\u8def\u7dda\uff0c\u4e0d\u5b9a\u6642\u51fa\u6c92\u65bc\u6280\u8853\u793e\u7fa4\u5c0f\u805a\u3002", "public_name": "\u694a\u8212\u5b89", "guid": "3621785c-fa91-5e0d-9cf8-6729feae0572", "url": "https://pretalx.com/jcconf-2023/speaker/BXVCBL/"}], "links": [], "feedback_url": "https://pretalx.com/jcconf-2023/talk/Q3E9VE/feedback/", "origin_url": "https://pretalx.com/jcconf-2023/talk/Q3E9VE/", "attachments": []}, {"guid": "a5836d07-4666-57ab-a47a-09e332272936", "code": "HHGTBJ", "id": 35656, "logo": null, "date": "2023-10-06T17:15:00+08:00", "start": "17:15", "duration": "00:45", "room": "402AB", "slug": "jcconf-2023-35656-leveraging-jetpack-compose-understanding-its-declarative-ui-and-performance-capabilities", "url": "https://pretalx.com/jcconf-2023/talk/HHGTBJ/", "title": "Leveraging Jetpack Compose: Understanding its Declarative UI and Performance Capabilities", "subtitle": "", "track": "402AB", "type": "Session", "language": "zh-hant", "abstract": "In this thought-provoking talk, we will delve into a comprehensive exploration of Jetpack Compose, its declarative User Interface (UI), and what this signifies for contemporary app development. We will explain its components and processes, specifically focusing on the functionality of composable functions and their implications for performance within app development. The talk will also shed light on distinctive features including skippability, restartability, and stability in Jetpack Compose. We will guide the audience through how these features influence the efficiency, responsiveness, and overall performance of an app. Furthermore, we will examine in depth how the Jetpack Compiler generates skippable code blocks and facilitates stability inference, revolutionizing how we perceive and utilize UI frameworks in application development. Join us for a stimulating conversation on how Jetpack Compose's distinctive capabilities can lead to enhanced crafting of software applications in our technological world.", "description": null, "recording_license": "", "do_not_record": false, "persons": [{"code": "G9QVPA", "name": "\u6d2a\u5f65\u5f6c", "avatar": "https://pretalx.com/media/avatars/G9QVPA_2z3lz0G.webp", "biography": "Software Engineer with a strong passion for clean code, testing, and software architecture. Over seven years of experience in Android.", "public_name": "\u6d2a\u5f65\u5f6c", "guid": "aa389f5e-323b-5c15-8d00-3f35aed27a26", "url": "https://pretalx.com/jcconf-2023/speaker/G9QVPA/"}], "links": [], "feedback_url": "https://pretalx.com/jcconf-2023/talk/HHGTBJ/feedback/", "origin_url": "https://pretalx.com/jcconf-2023/talk/HHGTBJ/", "attachments": []}], "402CD": [{"guid": "8af0df76-2122-5d6f-a3fc-67b78f83fc56", "code": "GJHAZP", "id": 35360, "logo": null, "date": "2023-10-06T10:40:00+08:00", "start": "10:40", "duration": "00:45", "room": "402CD", "slug": "jcconf-2023-35360-redis", "url": "https://pretalx.com/jcconf-2023/talk/GJHAZP/", "title": "Redis \u5feb\u53d6\u8a2d\u8a08\u6f2b\u8ac7", "subtitle": "", "track": "402CD", "type": "Session", "language": "en", "abstract": "\u672c\u8b1b\u5ea7\u4ecb\u7d39\u5728\u4e00\u500b\u9ad8 QPS \u3001\u6709\u57fa\u672cHA\u9700\u8981\u7684web backend service \u4e2d\uff0c\u5982\u4f55\u4f7f\u7528Redis \u6eff\u8db3\u8a31\u591a\u7cfb\u7d71\u67b6\u69cb\u9700\u8981\uff0c\u5f9e\u6700\u7c21\u55ae\u7684\u5beb\u7a7f\u5f0f\u5feb\u53d6(write through cache)\u3001\u9810\u8f09\u5f0f\u5feb\u53d6\uff0c\u5230redis \u5feb\u53d6\u9375\u503c\u8a2d\u8a08(cache key design)\u5e7e\u500b\u5e38\u7528\u7684\u60c5\u5883\uff0c\u6700\u5f8c\u4f86\u8b1b\u89e3\u5e7e\u500b\u6bd4\u8f03\u8907\u96dc\u7684redis \u61c9\u7528(message queue, lock, rate limiter, etc)", "description": null, "recording_license": "", "do_not_record": false, "persons": [{"code": "7DAD3V", "name": "Iantsai", "avatar": "https://pretalx.com/media/avatars/7DAD3V_Kx7GWJp.webp", "biography": "Ian Tsai, \u5728\u53f0\u7063\u4f5cJava \u76f8\u95dc\u8edf\u9ad4\u7522\u54c1\u958b\u767c(Open source, startup)10\u5e74\uff0c\u5f8c\u4f86\u642c\u5230\u7f8e\u570b\uff0c\u52a0\u5165LinkedIn \u3001SmartNews \u5728public cloud \u4e0a\u4f5cMicroServices \u5f8c\u7aef\u958b\u767c\uff0c\u73fe\u5728\u91cd\u56destartup \u7e7c\u7e8c\u52aa\u529b\u4e0b\u4e00\u500b\u7522\u54c1\u4e2d", "public_name": "Iantsai", "guid": "32cd290b-1376-5a56-a905-551d09a5647a", "url": "https://pretalx.com/jcconf-2023/speaker/7DAD3V/"}], "links": [], "feedback_url": "https://pretalx.com/jcconf-2023/talk/GJHAZP/feedback/", "origin_url": "https://pretalx.com/jcconf-2023/talk/GJHAZP/", "attachments": []}, {"guid": "4e204728-de39-5e25-b108-2e32ecfa94f9", "code": "BQPAMU", "id": 32556, "logo": null, "date": "2023-10-06T11:40:00+08:00", "start": "11:40", "duration": "00:45", "room": "402CD", "slug": "jcconf-2023-32556-what-the-crac-superfast-jvm-startup", "url": "https://pretalx.com/jcconf-2023/talk/BQPAMU/", "title": "\ud83c\uddec\ud83c\udde7 \ud83c\udf9e\ufe0f What the CRaC - Superfast JVM startup", "subtitle": "", "track": "402CD", "type": "Session", "language": "zh-hant", "abstract": "In a world where microservices are more and more a standard architecture for Java based applications running in the cloud, the JVM warmup time can become a limitation. Especially when you look at spinning up new instances of an app as response to changes in load, the warmup time can be a problem. Native images are one solution to solve these problems because their statically ahead of time compiled code simply doesn\u2019t have to warmup and so has short startup time. But even with the shorter startup time and smaller footprint it doesn\u2019t come without a drawback. The overall performance might be slower because of the missing JIT optimisations at runtime. There is a new OpenJDK project called CRaC (Coordinated Restore at Checkpoint) which goal it is to address the JVM warmup problem with a different approach. The idea is to take a snapshot of the running JVM, store it in files and restore the JVM at a later point in time (or even on another machine).\r\nThis session will give you a short overview of the CRaC project and shows some results from a proof of concept implementation.", "description": null, "recording_license": "", "do_not_record": false, "persons": [{"code": "7WCYNK", "name": "Gerrit Grunwald", "avatar": "https://pretalx.com/media/avatars/7WCYNK_Y9wzGS3.webp", "biography": "Gerrit Grunwald is a software engineer that loves coding for around 40 years already. He is a true believer in open source and has participated in popular projects like JFXtras.org as well as his own projects (TilesFX, Medusa, Enzo, SteelSeries Swing, SteelSeries Canvas, JDKMon).\u00a0\r\nGerrit blogs regularly at http://harmonic-code.org, he is an active member of the Java community, where he founded and leads the Java User Group M\u00fcnster (Germany), he is a JavaOne rockstar and a Java Champion. He is a speaker at conferences and user groups internationally and writes for several magazines.", "public_name": "Gerrit Grunwald", "guid": "17ab2a67-4801-5f59-b131-d91991a69c51", "url": "https://pretalx.com/jcconf-2023/speaker/7WCYNK/"}], "links": [], "feedback_url": "https://pretalx.com/jcconf-2023/talk/BQPAMU/feedback/", "origin_url": "https://pretalx.com/jcconf-2023/talk/BQPAMU/", "attachments": []}, {"guid": "cb86b9a2-7331-53a6-a3ef-3849531f45ce", "code": "D7ZSTB", "id": 37784, "logo": null, "date": "2023-10-06T13:45:00+08:00", "start": "13:45", "duration": "00:15", "room": "402CD", "slug": "jcconf-2023-37784-vmwarepaas", "url": "https://pretalx.com/jcconf-2023/talk/D7ZSTB/", "title": "VMware\u8207\u5fae\u8edf\u5982\u4f55\u642d\u5efaPaaS\u5e73\u53f0\uff0c\u63d0\u4f9b\u958b\u767c\u8005\u5feb\u901f\u90e8\u7f72\u61c9\u7528", "subtitle": "", "track": "402CD", "type": "Quickie", "language": "zh-hant", "abstract": "2018\u5e74\u4ee5\u4f86\uff0cVMware \u8207\u5fae\u8edf\u806f\u624b\u5728Azure\u4e0a\uff0c\u4ee5Kubernetes \u70ba\u5e95\u5c64\uff0c\u4e26\u4ee5Spring Cloud\u3001Buildpacks\u8207\u591a\u9805\u76e3\u63a7\u3001\u65e5\u8a8c\u5de5\u5177\uff0c\u5efa\u69cb\u958b\u767c\u8005\u53cb\u5584\u7684\u61c9\u7528\u90e8\u7f72\u5e73\u53f0\u3002\r\n\u9019\u500b\u8b70\u7a0b\u5c07\u5e36\u5927\u5bb6\u700f\u89bdAzure Spring Apps\u529f\u80fd\u8207\u76f8\u95dc\u6280\u8853\u5143\u4ef6\uff0c\u4e26\u5c55\u793a\u5feb\u901f\u90e8\u7f72\u6d41\u7a0b\u3002", "description": null, "recording_license": "", "do_not_record": false, "persons": [{"code": "RL7YWC", "name": "Rex Wang", "avatar": "https://pretalx.com/media/avatars/RL7YWC_PvV6Bp5.webp", "biography": "Rex\u71b1\u611bJava\u8207Spring\u76f8\u95dc\u6280\u8853\uff0c\u4e26\u66fe\u7d93\u53c3\u52a0\u96fb\u4fe1\u3001\u80fd\u6e90\u3001\u91d1\u878d\u76f8\u95dc\u5c08\u6848\uff0c\u6b77\u7df4\u904e\u958b\u767c\u8005\u3001\u5206\u6790\u5e2b\u3001\u67b6\u69cb\u5e2b\u8207\u5c08\u6848\u7d93\u7406\u7b49\u5de5\u4f5c\uff1b2014\u5e74\u8d77\u52a0\u5165Pivotal\uff0c\u8ca0\u8cac\u5e73\u53f0\u8207\u670d\u52d9\u92b7\u552e\u5de5\u4f5c\uff0c2000\u5e74VMware \u6536\u8cfcPivotal\uff0cRex\u8f49\u4efbModern Application Platform BU\u67b6\u69cb\u5e2b\u3002\r\nRex \u52a0\u5165Pivotal \u4e4b\u5f8c\uff0c\u767c\u73fePivotal\u6709\u5b8c\u6574\u7684\u8edf\u9ad4\u5de5\u7a0b\u65b9\u6cd5\u8ad6\u8207\u5de5\u5177(\u5305\u62ec\u9818\u57df\u9a45\u52d5\u8a2d\u8a08\u3001\u6975\u9650\u7de8\u7a0b\u3001Cloud Foundry\u8207Spring Framework\u7b49)\uff0c\u53ef\u4ee5\u89e3\u6c7a\u50b3\u7d71\u5c08\u6848\u6240\u9047\u5230\u7684\u96e3\u984c\uff0c\u5f9e\u6b64\u7acb\u5fd7\u5728\u53f0\u7063\u63a8\u5ee3\u76f8\u95dc\u7406\u5ff5\u8207\u5be6\u4f5c\u65b9\u5f0f\u3002", "public_name": "Rex Wang", "guid": "37735d15-4b5b-5077-ba00-907f2bd39120", "url": "https://pretalx.com/jcconf-2023/speaker/RL7YWC/"}], "links": [], "feedback_url": "https://pretalx.com/jcconf-2023/talk/D7ZSTB/feedback/", "origin_url": "https://pretalx.com/jcconf-2023/talk/D7ZSTB/", "attachments": [{"title": "JCConf2023 - VMware\u8207\u5fae\u8edf\u5982\u4f55\u642d\u5efaPaaS\u5e73\u53f0\uff0c\u63d0\u4f9b\u958b\u767c\u8005\u5feb\u901f\u90e8\u7f72\u61c9\u7528", "url": "/media/jcconf-2023/submissions/D7ZSTB/resources/JCConf2023_-_VMware%E8%88%87%E5%BE%AE%E8%BB%9F%E5%A6%82%E4%BD%95%E6%90%AD%E5%BB%BAPaaS%E5%B9%B3%E5%8F%B0%E6%8F%90%E4%BE%9B%E9%96%8B%E7%99%BC%E8%80%85%E5%BF%AB%E9%80%9F%E9%83%A8%E7%BD%B2%E6%87%89%E7%94%A8_qNO6gF1.pdf", "type": "related"}]}, {"guid": "cd0cdd2e-b711-56ac-a0ed-553c5a4cef5f", "code": "9VKWSJ", "id": 35496, "logo": null, "date": "2023-10-06T14:10:00+08:00", "start": "14:10", "duration": "00:45", "room": "402CD", "slug": "jcconf-2023-35496-data-pipeline-plumbing", "url": "https://pretalx.com/jcconf-2023/talk/9VKWSJ/", "title": "\ud83c\uddec\ud83c\udde7 \ud83c\udfa4 Data Pipeline Plumbing", "subtitle": "", "track": "402CD", "type": "Session", "language": "zh-hant", "abstract": "For the last two decades, the amount of data we store, process, and analyze is ever growing. The last decade shows a higher focus on immediate feedback loop data pipeline, using technologies such as Complex Event Processing (CEP), Stream Processing, and Change Data Capture (CDC). Services such as Kafka or NATS are to be found in almost every new system (at least to some extent).\r\n\r\nTo build a data pipeline, the number of technologies, frameworks, and platforms are endless. Getting the initial grasp of it all is much harder than expected, but together we can tackle it!", "description": null, "recording_license": "", "do_not_record": false, "persons": [{"code": "GDHVAM", "name": "Chris Engelbert", "avatar": "https://pretalx.com/media/avatars/GDHVAM_YnuxIrz.webp", "biography": "Christoph Engelbert is a developer by heart, with strong bonds to the open source world. As a seasoned speaker on international conferences, he loves to share his experience and ideas, especially in the areas of scalable system architectures and back-end technologies, as well as all things programming languages.", "public_name": "Chris Engelbert", "guid": "ac21266a-4322-529a-8262-a8b23ce274e6", "url": "https://pretalx.com/jcconf-2023/speaker/GDHVAM/"}], "links": [], "feedback_url": "https://pretalx.com/jcconf-2023/talk/9VKWSJ/feedback/", "origin_url": "https://pretalx.com/jcconf-2023/talk/9VKWSJ/", "attachments": []}, {"guid": "e01890ad-14d4-562d-8dc2-73b2a17abf1d", "code": "EDXENN", "id": 35419, "logo": null, "date": "2023-10-06T15:05:00+08:00", "start": "15:05", "duration": "00:45", "room": "402CD", "slug": "jcconf-2023-35419-internal-workings-of-an-http-client", "url": "https://pretalx.com/jcconf-2023/talk/EDXENN/", "title": "\ud83c\uddec\ud83c\udde7 Internal workings of an HTTP Client", "subtitle": "", "track": "402CD", "type": "Session", "language": "en", "abstract": "Most modern applications make an HTTP request one way or the other. However, despite their common usage HTTP clients are difficult to use optimally. This is partially because each environment is different, and also because networking itself is a difficult topic.\r\n\r\nAt the same time, a properly configured HTTP client could be the difference between a thread-busy server, or a localized error.\r\n\r\nI believe understanding the internals of how an HTTP library functions is an invaluable skill. I'd like to talk about the internals of a HTTP client that I know well, Armeria's WebClient.\r\nI believe these topics are not pertinent only to Armeria, and other HTTP clients are implemented with similar concepts in mind.\r\n\r\nI'll be discussing how Armeria client is implemented internally. I'll briefly go through the process of making a simple client request. While doing so, I'll touch on how DNS Resolution, Connection Pooling, Protocol Negotiation is implemented. I'll also discuss how the request and response is sent or received over the wire.\r\n\r\nImplementing an extensible and performant HTTP client can be a difficult task. I'll introduce how Armeria uses Event Loops, Decorators, and Reactive Streams to achieve this. I will also give code pointers in case anyone would like to go through the Armeria code-base themselves.", "description": null, "recording_license": "", "do_not_record": false, "persons": [{"code": "J7HDNT", "name": "Hannam Rhee", "avatar": null, "biography": "- Previously worked as a backend developer for LINE Messenger\r\n- Currently developing Armeria", "public_name": "Hannam Rhee", "guid": "3616a7d5-123b-5f76-a967-be2ec6c6e1e0", "url": "https://pretalx.com/jcconf-2023/speaker/J7HDNT/"}], "links": [], "feedback_url": "https://pretalx.com/jcconf-2023/talk/EDXENN/feedback/", "origin_url": "https://pretalx.com/jcconf-2023/talk/EDXENN/", "attachments": []}, {"guid": "95e4621a-16b4-5a76-ab6d-e4e0b2791f39", "code": "SQBUVK", "id": 37532, "logo": null, "date": "2023-10-06T16:20:00+08:00", "start": "16:20", "duration": "00:45", "room": "402CD", "slug": "jcconf-2023-37532-let-s-read-the-source-code-of-spring-distributed-lock-with-redis", "url": "https://pretalx.com/jcconf-2023/talk/SQBUVK/", "title": "Let's Read the Source Code of Spring Distributed Lock with Redis!", "subtitle": "", "track": "402CD", "type": "Session", "language": "en", "abstract": "In this talk, we embark on a journey to unravel the intricate mechanisms of Spring Distributed Lock using Redis. With a keen focus on source code analysis, we will unveil essential insights into the architecture of RedisLockRegistry. This talk also shares the experience of contributing to Spring Integration project.", "description": null, "recording_license": "", "do_not_record": false, "persons": [{"code": "7YKBHZ", "name": "Eddie Cho", "avatar": "https://pretalx.com/media/avatars/7YKBHZ_QhgDEeM.webp", "biography": "Java backend engineer", "public_name": "Eddie Cho", "guid": "955e1109-5173-571d-9acd-a19e94f14677", "url": "https://pretalx.com/jcconf-2023/speaker/7YKBHZ/"}], "links": [], "feedback_url": "https://pretalx.com/jcconf-2023/talk/SQBUVK/feedback/", "origin_url": "https://pretalx.com/jcconf-2023/talk/SQBUVK/", "attachments": []}, {"guid": "16791534-f1a9-5001-b58a-0df6b2126f9f", "code": "HLSZHL", "id": 32834, "logo": null, "date": "2023-10-06T17:15:00+08:00", "start": "17:15", "duration": "00:45", "room": "402CD", "slug": "jcconf-2023-32834-spring-modulith", "url": "https://pretalx.com/jcconf-2023/talk/HLSZHL/", "title": "Spring Modulith - \u4f9d\u64da\u6a21\u7d44\u6982\u5ff5\u69cb\u5efa\u67b6\u69cb\u65b9\u5f0f", "subtitle": "", "track": "402CD", "type": "Session", "language": "zh-hant", "abstract": "\u57fa\u65bc\u5fae\u670d\u52d9\u7684\u7cfb\u7d71\u5728\u904e\u53bb\u5e7e\u5e74\u4e2d\u8b8a\u5f97\u7121\u8655\u4e0d\u5728\u3002\u7136\u800c\uff0c\u55ae\u9ad4\u3001\u6a21\u584a\u5316\u7cfb\u7d71\u7684\u60f3\u6cd5\u6700\u8fd1\u4e5f\u91cd\u65b0\u6d41\u884c\u8d77\u4f86\u3002\r\nSpring Modulith \u662f\u4e00\u500b\u65b0\u7684\u5be6\u9a57\u6027 Spring \u9805\u76ee\uff0c\u8b93\u958b\u767c\u4eba\u54e1\u5728\u4ee3\u78bc\u4e2d\u8868\u9054\u9019\u4e9b\u908f\u8f2f\u61c9\u7528\u7a0b\u5e8f\u6a21\u7d44\uff0c\u4e26\u69cb\u5efa\u7d50\u69cb\u826f\u597d\u3001\u8207\u9818\u57df\u5c0d\u9f4a\u7684 Spring Boot \u61c9\u7528\u7a0b\u5e8f\u3002", "description": null, "recording_license": "", "do_not_record": false, "persons": [{"code": "797ZB9", "name": "ethan lee", "avatar": null, "biography": "\u76ee\u524d\u4efb\u8077\u65bc\u570b\u6cf0\u91d1\u63a7\uff0c\u8ca0\u8cac\u96f2\u7aef\u958b\u767c\u8207\u6280\u8853\u7814\u7a76", "public_name": "ethan lee", "guid": "5ab6104a-182c-52e4-b0eb-10e3eafbb8cd", "url": "https://pretalx.com/jcconf-2023/speaker/797ZB9/"}, {"code": "XBYNKP", "name": "ethan", "avatar": null, "biography": null, "public_name": "ethan", "guid": "442f5eb6-acb6-5876-a690-9d94c9b6401b", "url": "https://pretalx.com/jcconf-2023/speaker/XBYNKP/"}], "links": [], "feedback_url": "https://pretalx.com/jcconf-2023/talk/HLSZHL/feedback/", "origin_url": "https://pretalx.com/jcconf-2023/talk/HLSZHL/", "attachments": [{"title": "jcconf2023-Spring Modulith - \u4f9d\u64da\u6a21\u7d44\u6982\u5ff5\u69cb\u5efa\u67b6\u69cb\u65b9\u5f0f", "url": "/media/jcconf-2023/submissions/HLSZHL/resources/jcconf2023-Spring_Modulith_-_%E4%BE%9D%E6%93%9A%E6%A8%A1%E7%B5%84%E6%A6%82%E5%BF%B5%E6%A7%8B%E5%BB%BA%E6%9E%B6%E6%A7%8B%E6%96%B9%E5%BC%8F_KcVK0dM.pdf", "type": "related"}]}], "203": [{"guid": "8b66b15b-0d2e-558b-b946-e87f8c5f894d", "code": "7TSTL7", "id": 32529, "logo": null, "date": "2023-10-06T13:25:00+08:00", "start": "13:25", "duration": "00:15", "room": "203", "slug": "jcconf-2023-32529", "url": "https://pretalx.com/jcconf-2023/talk/7TSTL7/", "title": "\u9762\u8a66\u7684\u5167\u5bb9", "subtitle": "", "track": "203", "type": "Quickie", "language": "zh-hant", "abstract": "\u6e96\u5099\u597d\u8981\u9762\u8a66\u662f\u5f88\u91cd\u8981\u7684,\u9762\u8a66\u6703\u8003\u7684\u5167\u5bb9\u6709\u54ea\u4e9b:\r\n-\u9078\u64c7\u984c\r\n-\u4e5f\u6703\u6709\u8907\u9078\u984c\r\n-\u5f8c\u7aef,\u4ee5\u624b\u5beb\u8003\u8a66\u6e96\u5099\r\n-\u7c21\u7b54\u984c:DAO\u548cENTITY\u662f\u751a\u9ebc\r\n-\u7c21\u7b54\u984c: Bean \u548c SQLMap\u662f\u751a\u9ebc\r\n-\u8cc7\u6599\u5eab:\u4e3b\u9375\uff08Primary Key\uff09\u548c\u5916\u9375\uff08Foreign Key\uff09\r\n-\u8cc7\u6599\u578b\u614b\r\n-\u8cc7\u6599\u5eab\u4e5f\u53ef\u4ee5\u8003\u7c21\u7b54\u984c", "description": null, "recording_license": "", "do_not_record": false, "persons": [{"code": "VFF9HF", "name": "TZU", "avatar": "https://pretalx.com/media/avatars/VFF9HF_oGtU6oe.webp", "biography": "29\u6b72\u5973\u751f\u5b78\u7a0b\u5f0fFB\u7684\u5e55\u5f8c\u7de8\u8f2f\u8005\r\nhttps://www.facebook.com/Learnprogramby29girl\r\n\u6b61\u8fce\u5927\u5bb6\u6309\u8b9a~\u4e00\u8d77\u4f86\u7814\u7a76~", "public_name": "TZU", "guid": "c7bd7f63-086c-53b1-9f19-08a4ee479b5a", "url": "https://pretalx.com/jcconf-2023/speaker/VFF9HF/"}], "links": [], "feedback_url": "https://pretalx.com/jcconf-2023/talk/7TSTL7/feedback/", "origin_url": "https://pretalx.com/jcconf-2023/talk/7TSTL7/", "attachments": [{"title": "\u5982\u4f55\u6e96\u5099\u9762\u8a66_TZU", "url": "/media/jcconf-2023/submissions/7TSTL7/resources/%E5%A6%82%E4%BD%95%E6%BA%96%E5%82%99%E9%9D%A2%E8%A9%A6_20230522_JBuQRxy_UuCnOmL.pdf", "type": "related"}, {"title": "\u5982\u4f55\u6e96\u5099\u9762\u8a66", "url": "/media/jcconf-2023/submissions/7TSTL7/resources/%E5%A6%82%E4%BD%95%E6%BA%96%E5%82%99%E9%9D%A2%E8%A9%A6_20231001_iFBqQyR.pptx", "type": "related"}]}, {"guid": "12a6b471-644d-5cd6-b26e-b83fc4c336a6", "code": "HGHRJ7", "id": 32553, "logo": null, "date": "2023-10-06T13:45:00+08:00", "start": "13:45", "duration": "00:15", "room": "203", "slug": "jcconf-2023-32553-javaline-pay", "url": "https://pretalx.com/jcconf-2023/talk/HGHRJ7/", "title": "Java\u4e32\u63a5line pay\u4ed8\u6b3e", "subtitle": "", "track": "203", "type": "Quickie", "language": "zh-hant", "abstract": "\u900f\u904eLine Pay\u5b98\u65b9\u6587\u4ef6\u6240\u63d0\u4f9b\u7684Request API\u4ee5\u53caConfirm API\u4f86\u9054\u6210\u4e32\u63a5Line Pay \u4ed8\u6b3e\u7684\u529f\u80fd\u3002\r\n\u5f9eLine Pay\u5546\u5bb6\u5f8c\u53f0\u5275\u5efa\u518d\u5229\u7528\u5b98\u65b9\u6587\u4ef6\u63d0\u4f9b\u7684Java\u5f8c\u7aef\u7bc4\u4f8b\u7a0b\u5f0f\u78bc\uff0c\u4f7f\u7528\u7c21\u55ae\u7684Postman\u6e2c\u8a66\uff0c\u5c31\u80fd\u5b8c\u6210Line Pay\u63d0\u4f9b\u6e2c\u8a66\u74b0\u5883\u7684\u4ed8\u6b3e\u6e2c\u8a66\u56c9\uff01", "description": null, "recording_license": "", "do_not_record": false, "persons": [{"code": "MJY3AA", "name": "\u9ec3\u5049\u6b23", "avatar": "https://pretalx.com/media/avatars/MJY3AA_BKeGR47.webp", "biography": "\u5927\u5bb6\u597d\uff0c\u6211\u662f\u9ec3\u5049\u6b23\u3002\r\n\u76ee\u524d\u4efb\u8077\u65bc\u83ef\u64ce\u8edf\u9ad4\u79d1\u6280-\u8ca0\u8cac\u4fdd\u767c\u4e2d\u5fc3\u64d4\u4efbjava\u958b\u767c\u5de5\u7a0b\u5e2b\u3002\r\n\r\n\u9019\u662f\u6211\u7b2c\u4e00\u6b21\u53c3\u52a0 Jcconf\uff0c\u4e5f\u662f\u6211\u7b2c\u4e00\u6b21\u53c3\u52a0\u7684\u5927\u578b\u6d3b\u52d5\uff0c\u611f\u8b1djcconf\u8b93\u6211\u6709\u6a5f\u6703\u8ddf\u5927\u5bb6\u5206\u4eab\u3002", "public_name": "\u9ec3\u5049\u6b23", "guid": "d58c8e75-b3d2-50d5-b858-72ee8792b6d6", "url": "https://pretalx.com/jcconf-2023/speaker/MJY3AA/"}], "links": [], "feedback_url": "https://pretalx.com/jcconf-2023/talk/HGHRJ7/feedback/", "origin_url": "https://pretalx.com/jcconf-2023/talk/HGHRJ7/", "attachments": [{"title": "Line Pay\u4e32\u63a5", "url": "/media/jcconf-2023/submissions/HGHRJ7/resources/LINE_PAY_%E4%B8%B2%E6%8E%A5_g4pkVc4_24owaCX.pptx", "type": "related"}]}, {"guid": "7b0d34b2-3084-556b-a0ac-2cd674134fd5", "code": "SX9NUT", "id": 33717, "logo": null, "date": "2023-10-06T14:10:00+08:00", "start": "14:10", "duration": "00:45", "room": "203", "slug": "jcconf-2023-33717-create-your-library", "url": "https://pretalx.com/jcconf-2023/talk/SX9NUT/", "title": "Create your library", "subtitle": "", "track": "203", "type": "Session", "language": "en", "abstract": "\u8edf\u9ad4\u5de5\u7a0b\u5e2b\u7e3d\u662f\u5728\u4f7f\u7528\u5225\u4eba\u958b\u767c\u7684\u51fd\u5f0f\u5eab (library)\uff0c\u5c0f\u81f3\u5b57\u4e32\u8655\u7406 (string processing)\u3001\u5927\u81f3\u5de5\u4f5c\u4f47\u5217 (task queue)\u3002\u90a3\u5927\u5bb6\u6709\u6c92\u6709\u8003\u616e\u81ea\u5df1\u4f86\u958b\u767c\u51fd\u5f0f\u5eab\u5462\uff1f\r\n\r\n\u9019\u500b\u8b70\u7a0b\u5c31\u662f\u8981\u4f86\u63a2\u8a0e\u300c\u8207\u958b\u767c\u51fd\u5f0f\u5eab\u300d\u76f8\u95dc\u7684\u4e00\u4e9b\u8b70\u984c\uff1a\r\n\r\n1. \u958b\u767c\u51fd\u5f0f\u5eab\u9019\u4ef6\u4e8b\u6709\u54ea\u4e9b\u597d\u8655\uff1f\r\n2. \u51fd\u5f0f\u5eab\u8207\u975e\u51fd\u5f0f\u5eab\u7684\u7a0b\u5f0f\u78bc\uff0c\u901a\u5e38\u6709\u4ec0\u9ebc\u5dee\u7570\uff1f\u4f60\u662f\u5426\u807d\u904e mechanism code vs policy code\r\n3. \u597d\u7684\u51fd\u5f0f\u5eab\uff0c\u5927\u6982\u6709\u4ec0\u9ebc\u7279\u6027\uff1f\r\n4. \u5728\u54ea\u908a\u6703\u5bb9\u6613\u627e\u5230\u958b\u767c\u51fd\u5f0f\u5eab\u7684\u6a5f\u6703\uff1f\u8a72\u600e\u9ebc\u958b\u59cb\u5462\uff1f", "description": null, "recording_license": "", "do_not_record": false, "persons": [{"code": "DX3GH7", "name": "Laurence Chen", "avatar": "https://pretalx.com/media/avatars/DX3GH7_kJbNV1F.webp", "biography": "IT \u9867\u554f\u3001\u8b1b\u8005\u3001\u4f5c\u5bb6\u3002\u559c\u6b61\u5feb\u901f\u8fed\u4ee3 (fast iteration) \u8207\u63d0\u9ad8\u7522\u51fa\u3002\r\n\r\n\u73fe\u8077\uff1a\r\n- REPLWARE ( https://replware.dev ) CEO\r\n- \u53f0\u7063 Clojure \u793e\u7fa4 ( https://clojure.tw/ ) \u7dda\u4e0b\u6d3b\u52d5\u4e3b\u6301\u4eba\r\n- dbt taipei \u793e\u7fa4 ( https://medium.com/dbt-local-taiwan ) \u7dda\u4e0b\u6d3b\u52d5\u4e3b\u6301\u4eba\r\n\r\n\u8457\u4f5c\uff1a\r\n- \u5f9e\u932f\u8aa4\u5230\u5275\u65b0 ( https://leanpub.com/errors_to_innovation/ )", "public_name": "Laurence Chen", "guid": "ced4390f-c782-5740-95d7-91a214e9d70b", "url": "https://pretalx.com/jcconf-2023/speaker/DX3GH7/"}], "links": [], "feedback_url": "https://pretalx.com/jcconf-2023/talk/SX9NUT/feedback/", "origin_url": "https://pretalx.com/jcconf-2023/talk/SX9NUT/", "attachments": [{"title": "\u6295\u5f71\u7247 pdf \u6a94", "url": "/media/jcconf-2023/submissions/SX9NUT/resources/jcconf2023_Create_your_library_SCd8M0h.pdf", "type": "related"}]}, {"guid": "35af1c12-b18e-5df8-92c6-ab789774711b", "code": "BZNU89", "id": 35060, "logo": null, "date": "2023-10-06T15:05:00+08:00", "start": "15:05", "duration": "00:45", "room": "203", "slug": "jcconf-2023-35060-tagless-final-in-scala", "url": "https://pretalx.com/jcconf-2023/talk/BZNU89/", "title": "Tagless Final in Scala", "subtitle": "", "track": "203", "type": "Session", "language": "en", "abstract": "In the functional programming world, Tagless Final is a famous term. It is like a design pattern, encoding the business logic well. Let's briefly talk about where it comes from and how it applies to actual programming.\r\n\u5728 FP \u7684\u4e16\u754c\u88e1\uff0cTagless Final\u662f\u4e00\u500b\u8457\u540d\u7684\u8853\u8a9e\uff0c\u5b83\u662f\u4e00\u7a2e\u8a2d\u8a08\u6a21\u5f0f\uff0c\u5f88\u597d\u5730\u62bd\u8c61\u696d\u52d9\u908f\u8f2f\uff0c\u6211\u5011\u7c21\u55ae\u8aaa\u4e00\u4e0b\u5b83\u7684\u7531\u4f86\u4ee5\u53ca\u5982\u4f55\u61c9\u7528\u5230\u5be6\u969b\u7a0b\u5f0f\u8a2d\u8a08\u4e2d\u3002", "description": null, "recording_license": "", "do_not_record": false, "persons": [{"code": "38S7FP", "name": "Sean Sun", "avatar": "https://pretalx.com/media/avatars/38S7FP_DGfdXrS.webp", "biography": "I have worked as a Data Engineer for more than seven years. Using Python is popular in data engineering and science. However, I am more interested in Scala, especially the functional programming stack, and recently became a backend software engineer. Maybe because of my mathematical background, the quirky thing interests me and makes me keep learning and using it in production.", "public_name": "Sean Sun", "guid": "22603181-3ee2-5d6e-a240-99cd6f325ab9", "url": "https://pretalx.com/jcconf-2023/speaker/38S7FP/"}], "links": [], "feedback_url": "https://pretalx.com/jcconf-2023/talk/BZNU89/feedback/", "origin_url": "https://pretalx.com/jcconf-2023/talk/BZNU89/", "attachments": [{"title": "Presentation", "url": "/media/jcconf-2023/submissions/BZNU89/resources/JCConf23Tagless_Final_in_Scala_XRpBWyw.pdf", "type": "related"}]}, {"guid": "774d216f-dc0a-5921-adb2-6cbd225c416b", "code": "BVFJZS", "id": 36086, "logo": null, "date": "2023-10-06T16:20:00+08:00", "start": "16:20", "duration": "00:45", "room": "203", "slug": "jcconf-2023-36086-introduction-to-mysql-rest-service", "url": "https://pretalx.com/jcconf-2023/talk/BVFJZS/", "title": "Introduction to MySQL REST Service", "subtitle": "", "track": "203", "type": "Session", "language": "zh-hant", "abstract": "MySQL\u958b\u767c\u5718\u968a\u5728\u4eca\u5e742\u6708\u63a8\u51fa\u4e86MySQL REST Service (MRS) \u7b2c\u4e00\u500bBeta\u7248\uff0c\u518d\u65bc\u4eca\u5e74\u4e94\u6708\u63a8\u51fa\u4e86\u7b2c\u4e8c\u500bBeta\u7248.\u9019\u4f7f\u5f97MySQL\u8cc7\u6599\u5eab\u80fd\u900f\u904e\u5176REST Service\u7684end point\uff0c\u5c07\u8cc7\u6599\u5eab\u4e2d\u7684\u8cc7\u6599\u4ee5JSON\u6587\u4ef6\u7684\u683c\u5f0f\u652f\u63f4Web\u61c9\u7528\u6216Mobile\u61c9\u7528,\u5b83\u4e5f\u652f\u63f4OAuth2\u8a8d\u8b49\u670d\u52d9,\u53ca\u5176\u4ed6\u5148\u9032\u7684\u5b89\u63a7\u529f\u80fd,\u9032\u800c\u80fd\u548c\u5404\u7a2eFramework(\u4f8b\u5982Django, .NET)\u5408\u4f5c\uff0c\u4ee5\u5927\u5e45\u589e\u52a0\u958b\u767c\u8005\u7684\u751f\u7522\u529b.\r\n\r\n\u9019\u5834\u6f14\u8b1b\u5c07\u70ba\u6703\u773e\u4ecb\u7d39\u9019\u5957\u5168\u65b0\u7684\u6280\u8853,\u4e26\u4e14\u6f14\u793a\u5982\u4f55\u4f7f\u7528MySQL for VS Code\u4f86\u8a2d\u5b9a\u53ca\u7ba1\u7406MSR.\r\n\r\n\u672c\u6f14\u8b1b\u4e3b\u8981\u7684\u91cd\u9ede\u5305\u62ec:\r\n-   MSR\u7684\u67b6\u69cb\r\n-   \u4ee5MySQL for VS Code\u5efa\u7acbMSR\u670d\u52d9\r\n-   \u4e0b\u8f09\u53ca\u5b89\u88dd\u5177\u6709MSR\u529f\u80fd\u7684MySQL Router\r\n-   Bootstrap (\u521d\u59cb\u5316) MySQL Router\r\n-   \u4ee5browser\u9023\u4e0aMySQL REST Service\u7684Endpoint\r\n-   \u5efa\u7acb\u57fa\u65bcMRS\u4e4bREST\u61c9\u7528", "description": null, "recording_license": "", "do_not_record": false, "persons": [{"code": "XAZLSA", "name": "Ivan Tu", "avatar": "https://pretalx.com/media/avatars/XAZLSA_ifWoa4q.webp", "biography": "\u675c\u4fee\u6587\uff0c\u662f\u4e00\u4f4d\u5177\u6709\u4e09\u5341\u591a\u5e74IT\u5be6\u52d9\u7d93\u9a57\u7684IT\u8001\u5175\uff0c\u73fe\u4efb\u7532\u9aa8\u6587\u516c\u53f8MySQL\u89e3\u6c7a\u65b9\u6848\u90e8\u6771\u4e9e\u5340\u8cc7\u6df1\u7d93\u7406\uff0c\u540c\u6642\u4e5f\u662f\u81fa\u7063MySQL\u793e\u5340\u7684\u767c\u8d77\u4eba\u3002\u5728\u7532\u9aa8\u6587\u516c\u53f8\u4e3b\u8981\u7684\u5de5\u4f5c\u662f\u5e36\u9818\u6771\u4e9e\u5340\u7684MySQL\u6280\u8853\u9867\u554f\u5718\u968a\u63a8\u5ee3MySQL\u6280\u8853\uff0c\u4e5f\u70ba\u91cd\u5927\u5c08\u6848\u7684\u63a8\u63d0\u4f9b\u6280\u8853\u6307\u5c0e\u3002\u675c\u4fee\u6587\u9664\u4e86\u5728\u8cc7\u6599\u5eab\u4e4b\u5916\uff0c\u4e5f\u662fJava\u63a7\u9818\u6709\u6578\u5f35Java\u8a8d\u8b49\u3002\u5728\u4efb\u8077\u7532\u9aa8\u6587\u516c\u53f8\u4e4b\u524d\uff0c\u4ed6\u66fe\u4efb\u5347\u967d\u96fb\u8166\u8edf\u9ad4\u4e8b\u696d\u90e8\u67b6\u69cb\u5e2b\uff0c\u7532\u9aa8\u6587\u5927\u5b78\u8b1b\u5e2b\u548c\u8a13\u7df4\u90e8\u7d93\u7406\u7b49\u5de5\u4f5c\u3002", "public_name": "Ivan Tu", "guid": "99479713-b972-5984-be14-109ae35405d2", "url": "https://pretalx.com/jcconf-2023/speaker/XAZLSA/"}], "links": [], "feedback_url": "https://pretalx.com/jcconf-2023/talk/BVFJZS/feedback/", "origin_url": "https://pretalx.com/jcconf-2023/talk/BVFJZS/", "attachments": [{"title": "\u7c21\u5831", "url": "/media/jcconf-2023/submissions/BVFJZS/resources/MySQLVSCodeExt_MySQLRESTService_Prototypes_v%EF%BC%94_i1KwyaX.pdf", "type": "related"}]}, {"guid": "386bbe91-5bf0-5cda-ae9f-702589153deb", "code": "FFDMKP", "id": 34774, "logo": null, "date": "2023-10-06T17:15:00+08:00", "start": "17:15", "duration": "00:45", "room": "203", "slug": "jcconf-2023-34774-androidapp-a-practice-of-modularization-for-a-super-large-android-app", "url": "https://pretalx.com/jcconf-2023/talk/FFDMKP/", "title": "Android\u4e0a\u8d85\u5927\u578bapp\u7684\u6a21\u7d44\u5316\u5be6\u8e10\u5206\u4eab\b - A practice of modularization for a super large Android app", "subtitle": "", "track": "203", "type": "Session", "language": "zh-hant", "abstract": "\u7576App\u7684\u529f\u80fd\u8d8a\u4f86\u8d8a\u591a\u8d8a\u4f86\u8d8a\u8907\u96dc\u4e14\u958b\u767c\u4eba\u54e1\u8d8a\u4f86\u8d8a\u591a\u7684\u6642\u5019\uff0c\u5982\u679c\u6c92\u6709\u9069\u7576\u7684\u6a21\u7d44\u5316\uff0c\u958b\u767c\u6d41\u7a0b\u6703\u8d8a\u4f86\u8d8a\u591a\u554f\u984c\u3002\u4e0d\u4f46\u6703\u964d\u4f4eApp\u7684\u54c1\u8cea\uff0c\u800c\u4e14\u958b\u767c\u8005\u7684\u9ad4\u9a57\u4e5f\u6703\u8d8a\u4f86\u8d8a\u5dee\u3002\u5728\u672c\u6b21\u7684\u5206\u4eab\u4e2d\uff0c\u6211\u6703\u5206\u4eab\u4e00\u500bAndroid\u4e0a\u8d85\u5927\u578bApp\u5982\u4f55\u5f9e\u4e00\u500b\u8d85\u5927\u578b\u7684\u55ae\u4e00\u6a21\u7d44\u5316\u6162\u6162\u6f14\u5316\u6210\u8a31\u591a\u7684\u5c0f\u6a21\u7d44\u3002\u4ee5\u53ca\u9762\u5411\u6a21\u7d44\u5316\u7684\u8a2d\u8a08\u4e2d\u6709\u54ea\u4e9b\u6311\u6230\u8ddf\u5efa\u8b70\u7684 Design Pattern\u8207Anti-Pattern\u3002\u5e0c\u671b\u5404\u4f4d\u53ef\u4ee5\u5f9e\u672c\u5206\u4eab\u4e2d\u5f97\u5230\u4e00\u4e9b\u555f\u767c\u4e26\u4e14\u6539\u5584\u672c\u8eab\u7684App\u8a2d\u8a08", "description": null, "recording_license": "", "do_not_record": false, "persons": [{"code": "UBVDFS", "name": "Freddie Wang (\u6c6a\u6c38\u8208)", "avatar": "https://pretalx.com/media/avatars/UBVDFS_UxNtDnk.webp", "biography": "Engineer manager, Android Engineer in LINE Fukuoka. Now living in Fukuoka", "public_name": "Freddie Wang (\u6c6a\u6c38\u8208)", "guid": "08eebbdc-eb0b-5db8-ad3d-2e51f62f8649", "url": "https://pretalx.com/jcconf-2023/speaker/UBVDFS/"}], "links": [], "feedback_url": "https://pretalx.com/jcconf-2023/talk/FFDMKP/feedback/", "origin_url": "https://pretalx.com/jcconf-2023/talk/FFDMKP/", "attachments": []}], "403": [{"guid": "79872c3a-17bd-574f-b8fe-e7fa3a861d3d", "code": "EDGYXC", "id": 35154, "logo": null, "date": "2023-10-06T14:00:00+08:00", "start": "14:00", "duration": "03:00", "room": "403", "slug": "jcconf-2023-35154", "url": "https://pretalx.com/jcconf-2023/talk/EDGYXC/", "title": "\ud83d\udd27 \u6e2c\u8a66\u4e0d\u662f\u6709\u5beb\u5c31\u597d - \u597d\u7684\u6e2c\u8a66\u52a9\u4f60\u6e96\u6642\u4e0b\u73ed", "subtitle": "", "track": "403", "type": "Workshop", "language": "zh-hant", "abstract": "\u6211\u5011\u90fd\u77e5\u9053\uff0c\u8b80\u66f8\u8207\u91cd\u69cb\u662f\u9081\u5411\u66f4\u597d\u8a2d\u8a08\u7684\u91cd\u8981\u5143\u7d20\u3002\u66f8\u5927\u5bb6\u90fd\u8b80\u4e86\u5f88\u591a\uff08\u5427\uff01\uff09\uff0c\u4f46\u4f60\u662f\u5426\u767c\u73fe\uff0c\u6bcf\u6b21\u807d Kent Beck \u7684\u8a71\uff0c\u767c\u73fe\u8a2d\u8a08\u6709\u554f\u984c\uff0c\u8981\u62ff\u66f8\u4e0a\u7684\u77e5\u8b58\u4f86\u91cd\u69cb\u6642\uff0c\u537b\u767c\u73fe\u4e0d\u7ba1\u7a0b\u5f0f\u9084\u662f\u6e2c\u8a66\u90fd\u9700\u8981\u5927\u5e45\u5ea6\u7684\u4fee\u6539\uff1f\u9047\u5230\u6b64\u60c5\u5f62\uff0c\u4f60\u6703\u9078\u64c7\u600e\u9ebc\u505a\uff1f\r\n\r\n\u9078\u64c7\u786c\u8457\u982d\u76ae\u4fee\u6539\uff0c\u5c31\u6703\u9047\u5230\u4fee\u6539\u5e45\u5ea6\u904e\u5927\u3001\u6642\u9593\u4e0d\u5920\u7684\u554f\u984c\uff1b\u9078\u64c7\u9589\u8457\u773c\u775b commit\uff0c\u4e0d\u505a\u4fee\u6539\uff0c\u5c31\u53ea\u662f\u628a\u539f\u672c\u5c31\u6709\u554f\u984c\u7684\u8a2d\u8a08\u8b8a\u5f97\u66f4\u6709\u554f\u984c\uff0c\u8b93\u4e0b\u4e00\u500b\u4eba\uff08a.k.a. \u4e0b\u500b\u79ae\u62dc\u7684\u81ea\u5df1\uff09\u9677\u5165\u66f4\u58de\u7684\u8655\u5883\u3002\u771f\u7684\u662f\u5169\u96e3\u2026\r\n\r\n\u8aaa\u5230\u5e95\uff0c\u4e0d\u652f\u6301\u91cd\u69cb\u7684\u6e2c\u8a66\uff0c\u53ea\u80fd\u767c\u63ee\u4e00\u534a\u7684\u529f\u6548\uff0c\u82e5\u662f\u80fd\u8b93\u6e2c\u8a66\u5728\u4fdd\u8b77\u908f\u8f2f\u7684\u540c\u6642\uff0c\u4e0d\u5c0d\u91cd\u69cb\u9020\u6210\u963b\u7919\uff0c\u76f8\u4fe1 Uncle Bob \u8aaa\u7684\u300c\u91cd\u69cb\u51fa\u597d\u7684\u8a2d\u8a08\u300d\u80af\u5b9a\u4e5f\u662f\u8fa6\u5f97\u5230\u7684\u5427\uff01\r\n\r\n\u672c\u5de5\u4f5c\u574a\u5c07\u7528\u4e00\u500b\u5b8c\u6574\u7684\u6848\u4f8b\uff0c\u8b93\u8207\u6703\u8005\u5728\u904e\u7a0b\u4e2d\uff0c\u4e00\u6b65\u6b65\u5728\uff08\u4e0d\u5e72\u64fe\u91cd\u69cb\u7684\uff09\u6e2c\u8a66\u7684\u4fdd\u8b77\u4e0b\uff0c\u540c\u6642\u5b8c\u6210\u529f\u80fd\u8207\u8abf\u6574\u8a2d\u8a08\u3002\u671f\u5f85\u9019\u6a23\u7684\u5de5\u4f5c\u65b9\u5f0f\uff0c\u80fd\u8b93\u8207\u6703\u8005\u56de\u53bb\u5f8c\uff0c\u300c\u7d93\u904e\u4e00\u5b9a\u7684\u7df4\u7fd2\u8207\u8a66\u932f\u300d\uff0c\u5728\u5de5\u4f5c\u4e0a\u5f97\u5230\u54c1\u8cea\u8207\u901f\u5ea6\u7684\u63d0\u5347\u3002", "description": null, "recording_license": "", "do_not_record": false, "persons": [{"code": "XKYAYV", "name": "Kuma Syu", "avatar": "https://pretalx.com/media/avatars/XKYAYV_bgl1MbT.webp", "biography": "Kuma \u6700\u8a0e\u53ad\u7684\u5c31\u662f coding \u4e86\u3002\r\n\r\n\u4f60\u6c92\u807d\u932f\uff0c\u8eab\u70ba RD\uff0c\u53ea\u8981\u80fd\u6eff\u8db3\u54c1\u8cea\u8207\u6642\u7a0b\uff0c\u4ed6\u5805\u6301\u80fd\u5920\u5c11\u5beb code \u5c31\u5c11\u5beb code\u3002\r\n\r\n\u4ed6\u4e5f\u5f88\u61f6\uff0c\u80fd\u5920\u8b93\u6a5f\u5668\u505a\u7684\u4e8b\u5c31\u4e0d\u81ea\u5df1\u505a\u3002\r\n\r\n\u4ed6\u8a0e\u53ad\u6d6a\u8cbb\uff0c\u4e5f\u61f6\u5f97\u7b97\u8a08\uff0c\u5c31\u50bb\u50bb\u5730\u5728\u7d44\u7e54\u5167\u52aa\u529b\u63a8\u52d5\u5404\u7a2e\u6d41\u7a0b\u6539\u5584\u3001\u4eba\u54e1\u6559\u80b2\uff0c\u8207\u8edf\u9ad4\u5de5\u7a0b\u5be6\u8e10\u3002\r\n\r\n\u300c\u5d07\u5c1a\u654f\u6377\u7cbe\u795e\uff0c\u71b1\u611b\u8edf\u9ad4\u5de5\u7a0b\uff0c\u8a0e\u53ad\u6d6a\u8cbb\u6642\u9593\u300d\u2014 \u4f60\u53ef\u4ee5\u9019\u9ebc\u5f62\u5bb9\u4ed6\u3002", "public_name": "Kuma Syu", "guid": "e7ed12b3-79a5-5d61-95b4-b0535084ee54", "url": "https://pretalx.com/jcconf-2023/speaker/XKYAYV/"}, {"code": "GDWBU9", "name": "Sasha", "avatar": "https://pretalx.com/media/avatars/GDWBU9_zVIhbGz.webp", "biography": "\u76ee\u524d\u4efb\u8077\u65bc\u7def\u96f2\u80a1\u4efd\u6709\u9650\u516c\u53f8\uff0c\u4e3b\u8981\u4f7f\u7528\u8a9e\u8a00\u70ba Java\u3002", "public_name": "Sasha", "guid": "7b6331cb-5f79-5f9c-beaa-92cb93014d44", "url": "https://pretalx.com/jcconf-2023/speaker/GDWBU9/"}], "links": [], "feedback_url": "https://pretalx.com/jcconf-2023/talk/EDGYXC/feedback/", "origin_url": "https://pretalx.com/jcconf-2023/talk/EDGYXC/", "attachments": []}]}}]}}}