{"$schema": "https://c3voc.de/schedule/schema.json", "generator": {"name": "pretalx", "version": "2026.3.0.dev0", "url": "https://pretalx.com"}, "schedule": {"url": "https://pretalx.com/jcconf-2024/schedule/", "version": "0.14", "base_url": "https://pretalx.com", "conference": {"acronym": "jcconf-2024", "title": "JCConf 2024", "start": "2024-09-27", "end": "2024-09-27", "daysCount": 1, "timeslot_duration": "00:05", "time_zone_name": "Asia/Taipei", "colors": {"primary": "#3aa57c"}, "rooms": [{"name": "401", "slug": "3280-401", "guid": "b9b7b4e0-7197-5d95-9827-e747e22988b9", "description": null, "capacity": 200}, {"name": "402AB", "slug": "3281-402ab", "guid": "2d8bbc5f-9edb-5436-80d5-7bf15adacfc7", "description": null, "capacity": 120}, {"name": "402CD", "slug": "3282-402cd", "guid": "e3687abd-7d3d-50fa-a9d0-1ea35d0c0bf4", "description": null, "capacity": 120}, {"name": "203", "slug": "3284-203", "guid": "e5f003c9-9212-591d-a002-e62c16e86c50", "description": null, "capacity": 80}, {"name": "403", "slug": "3283-403", "guid": "0cba7c24-6dbf-52a7-897e-892efc67f391", "description": null, "capacity": 30}], "tracks": [{"name": "Promotion", "slug": "4664-promotion", "color": "#C19D0C"}, {"name": "402AB", "slug": "4665-402ab", "color": "#268785"}, {"name": "401", "slug": "4666-401", "color": "#D0104C"}, {"name": "402CD", "slug": "4667-402cd", "color": "#1B813E"}, {"name": "203", "slug": "4668-203", "color": "#954A45"}, {"name": "403", "slug": "4669-403", "color": "#574C57"}], "days": [{"index": 1, "date": "2024-09-27", "day_start": "2024-09-27T04:00:00+08:00", "day_end": "2024-09-28T03:59:00+08:00", "rooms": {"401": [{"guid": "f69b1584-a893-558a-93bd-739aa4f0273e", "code": "NDMG3B", "id": 53563, "logo": null, "date": "2024-09-27T09:25:00+08:00", "start": "09:25", "end": "2024-09-27T09:35:00+08:00", "duration": "00:10", "room": "401", "slug": "jcconf-2024-53563-opening", "url": "https://pretalx.com/jcconf-2024/talk/NDMG3B/", "title": "Opening", "subtitle": "", "track": "401", "type": "Session", "language": "zh-hant", "abstract": "-", "description": null, "recording_license": "", "do_not_record": false, "persons": [], "links": [], "feedback_url": "https://pretalx.com/jcconf-2024/talk/NDMG3B/feedback/", "origin_url": "https://pretalx.com/jcconf-2024/talk/NDMG3B/", "attachments": []}, {"guid": "116fdab8-3aef-5c04-aa96-56b1ce85b130", "code": "CHLTZJ", "id": 54859, "logo": null, "date": "2024-09-27T09:35:00+08:00", "start": "09:35", "end": "2024-09-27T09:40:00+08:00", "duration": "00:05", "room": "401", "slug": "jcconf-2024-54859-line-taiwan", "url": "https://pretalx.com/jcconf-2024/talk/CHLTZJ/", "title": "\u5ba3\u50b3\u8b70\u7a0b\uff08LINE Taiwan\uff09", "subtitle": "", "track": "Promotion", "type": "Session", "language": "zh-hant", "abstract": "\u7e3d\u90e8\u4f4d\u65bc\u65e5\u672c\u7684LINE\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\u81ea2011\u5e746\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\u5e743\u6708\uff0cLINE\u8207\u65e5\u672c\u898f\u6a21\u6700\u5927\u7684\u7db2\u8def\u79d1\u6280\u96c6\u5718\u4e4b\u4e00Z 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-2024/talk/CHLTZJ/feedback/", "origin_url": "https://pretalx.com/jcconf-2024/talk/CHLTZJ/", "attachments": []}, {"guid": "0c0565dd-9ffa-579d-9288-0b6747d81f28", "code": "F39GPS", "id": 55227, "logo": null, "date": "2024-09-27T09:40:00+08:00", "start": "09:40", "end": "2024-09-27T10:25:00+08:00", "duration": "00:45", "room": "401", "slug": "jcconf-2024-55227-java-21-and-beyond-state-of-loom-and-amber", "url": "https://pretalx.com/jcconf-2024/talk/F39GPS/", "title": "Java 21 and Beyond: State of Loom and Amber(\u82f1\u6587)(\u9810\u9304)", "subtitle": "", "track": "401", "type": "Session", "language": "zh-hant", "abstract": "Java 21 was released in September 2023 and Java 25 is due in September 2025, so we are just in between these two important releases. This is a very good time to look at what was released in the JDK 21, and what is currently been developed, and could be released in 25. Structured Concurrency is almost there, Data Oriented Programming is taking shape, so we now have a good idea of what it will bring for us, developers.\nThis presentation covers four of the projects currently been developed by the OpenJDK. First, we will take a quick look at Panama, that released the Foreign Function and Memory API and Valhalla and that is still developing value types and non-nullable types, as well as the Vector API. Then, we will spend some time on Loom, that delivered Virtual Threads, and is still developing Structured Concurrency, to understand why you will need this feature once they are made final. And lastly, we will present Amber, how it implements the Data Oriented Programming paradigm to the Java platform, and how you can leverage this programming model to write better applications, organized in a better way and easier to maintain.", "description": null, "recording_license": "", "do_not_record": false, "persons": [{"code": "JZRPNT", "name": "Jose PAUMARD", "avatar": "https://pretalx.com/media/avatars/JZRPNT_QpIIjmA.webp", "biography": "Jos\u00e9 is a member of the Java Developer Relations team at Oracle. He holds a PhD in applied mathematics and computer science and was an assistant professor at the University Sorbonne Paris Nord. Jos\u00e9 is an active member of the Paris Java User Group, has been a co-organizer of the Devoxx France conference, and is currently a disorganizer of JChateau. He contributes Java learning content on the dev.java website publishes \"JEP Caf\u00e9\", a monthly video cast, as well as a series of shorts on the official Java YouTube channel.", "public_name": "Jose PAUMARD", "guid": "eebfa352-e923-5817-b18a-7a72c3bb39a7", "url": "https://pretalx.com/jcconf-2024/speaker/JZRPNT/"}], "links": [], "feedback_url": "https://pretalx.com/jcconf-2024/talk/F39GPS/feedback/", "origin_url": "https://pretalx.com/jcconf-2024/talk/F39GPS/", "attachments": [{"title": "slide", "url": "/media/jcconf-2024/submissions/F39GPS/resources/From_Java_21_to_25_OLlVJvy.pdf", "type": "related"}]}, {"guid": "9ef4b01c-278d-56ab-9f4b-3d277a454806", "code": "NJ3TET", "id": 55228, "logo": null, "date": "2024-09-27T10:25:00+08:00", "start": "10:25", "end": "2024-09-27T10:35:00+08:00", "duration": "00:10", "room": "401", "slug": "jcconf-2024-55228-break", "url": "https://pretalx.com/jcconf-2024/talk/NJ3TET/", "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-2024/talk/NJ3TET/feedback/", "origin_url": "https://pretalx.com/jcconf-2024/talk/NJ3TET/", "attachments": []}, {"guid": "ba34e570-6af9-53ce-8ce7-07fb76ae61b5", "code": "PEPJVJ", "id": 55223, "logo": null, "date": "2024-09-27T10:35:00+08:00", "start": "10:35", "end": "2024-09-27T10:40:00+08:00", "duration": "00:05", "room": "401", "slug": "jcconf-2024-55223-cathay-financial-holdings-co-ltd", "url": "https://pretalx.com/jcconf-2024/talk/PEPJVJ/", "title": "\u5ba3\u50b3\u8b70\u7a0b\uff08\u570b\u6cf0\u91d1\u63a7 Cathay Financial Holdings Co. Ltd.\uff09", "subtitle": "", "track": "Promotion", "type": "Session", "language": "zh-hant", "abstract": "-", "description": null, "recording_license": "", "do_not_record": false, "persons": [], "links": [], "feedback_url": "https://pretalx.com/jcconf-2024/talk/PEPJVJ/feedback/", "origin_url": "https://pretalx.com/jcconf-2024/talk/PEPJVJ/", "attachments": []}, {"guid": "76cc45d7-9686-5eb1-8bb4-2f0c80b6864f", "code": "JSDXZ7", "id": 52150, "logo": null, "date": "2024-09-27T10:40:00+08:00", "start": "10:40", "end": "2024-09-27T11:25:00+08:00", "duration": "00:45", "room": "401", "slug": "jcconf-2024-52150-java-22-23", "url": "https://pretalx.com/jcconf-2024/talk/JSDXZ7/", "title": "Java 22 & 23 \u65b0\u529f\u80fd\u4ecb\u7d39", "subtitle": "", "track": "401", "type": "Session", "language": "zh-hant", "abstract": "2024 \u5e74\u7684 Java 22 \u548c 23 \u5ef6\u7e8c\u4e86\u4e4b\u524d\u7248\u672c\u7684\u529f\u80fd\uff0c\u6b63\u5f0f\u63d0\u4f9b\u4e86\u533f\u540d\u8b8a\u6578\u8207\u6a21\u5f0f\u3001\u5916\u90e8\u51fd\u5f0f\u8207\u8a18\u61b6\u9ad4\u5b58\u53d6 API\uff0c\u4e26\u4e14\u4e5f\u65b0\u589e\u4e86\u6709\u8da3\u7684  Markdown \u6587\u4ef6\u8a3b\u89e3\u548c\u76f4\u63a5\u57f7\u884c\u8de8\u6a94\u6848\u7684\u6e90\u78bc\u7a0b\u5f0f\u7b49\u529f\u80fd\u3002\u540c\u6642\uff0c\u6301\u7e8c\u5b75\u5316\u4e2d\u7684\u9805\u76ee\u6709\u5f48\u6027\u7684\u5efa\u69cb\u51fd\u5f0f\u3001\u5b57\u4e32\u6a21\u677f\u3001\u5411\u91cf\u8655\u7406\u3001\u4e32\u6d41\u6536\u96c6\u5668\u3001\u96b1\u5f0f\u5ba3\u544a\u985e\u5225\u548c\u5be6\u4f8b\u4e3b\u65b9\u6cd5\u3001\u57fa\u672c\u578b\u5225\u7684\u6a21\u5f0f\u5339\u914d\uff0c\u4ee5\u53ca\u6a21\u7d44 import \u5ba3\u544a\u7b49\u529f\u80fd\u3002\u672c\u5834\u6f14\u8b1b\u5c07\u8207\u5927\u5bb6\u5206\u4eab\u9019\u5169\u500b\u7248\u672c\u6240\u5e36\u4f86\u7684 Java \u6700\u65b0\u8b8a\u5316\u3002", "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\u820a\u7684 386 \u96fb\u8166\uff0c\u6c92\u6709\u786c\u789f\u548c\u5149\u789f\u6a5f\u7121\u6cd5\u73a9\u5927\u88dc\u5e16\uff0c\u53ea\u80fd\u8d70\u4e0a\u5beb\u7a0b\u5f0f\u9019\u689d\u4e0d\u6b78\u8def\u3002\u9ad8\u4e2d\u6642\u7528 BASIC \u5beb\u4e86\u884c\u4e8b\u66c6\u8edf\u9ad4\u548c\u5c0f\u904a\u6232\uff0c\u5927\u5b78\u5538\u6578\u5b78\u526f\u4fee\u8cc7\u5de5\u73a9 C / C++ / Java\u3002\u67b6\u4e86 BBS\u3001\u90e8\u843d\u683c\uff0c\u6253\u5de5\u505a\u5546\u5e97\u5f62\u8c61\u7db2\u7ad9\u3001\u96fb\u5546\u5e73\u53f0\u548c\u9032\u92b7\u5b58\u7cfb\u7d71\uff0c\u4e5f\u9806\u624b\u7528 LPC \u8a9e\u8a00\u5beb MUD \u904a\u6232\u3002\u66fe\u5728\u9023\u9396\u8cc7\u8a0a\u6559\u80b2\u6a5f\u69cb\u3001\u52a0\u503c\u7c21\u8a0a\u670d\u52d9\u5546\u3001\u5206\u6563\u5f0f\u96f2\u7aef\u5f71\u97f3\u5e73\u53f0\u3001\u5168\u7403\u96fb\u5b50\u5546\u52d9\u5e73\u53f0\u3001\u8cc7\u5b89\u9632\u8b77\u3001\u7528\u6236\u884c\u70ba\u7ba1\u7406\u3001\u667a\u6167\u7269\u806f\u7db2\u7b49\u516c\u53f8\u5de5\u4f5c\uff0c\u8ca0\u8cac\u5404\u5f0f\u5927\u578b\u5c08\u6848\u7684\u5546\u696d\u9700\u6c42\u3001\u7b56\u7565\u898f\u5283\u3001\u898f\u683c\u5206\u6790\u3001\u67b6\u69cb\u8a2d\u8a08\u3001\u958b\u767c\u5be6\u4f5c\u3001\u6e2c\u8a66\u8abf\u6821\u3001\u90e8\u7f72\u7dad\u904b\u3001\u9810\u6e2c\u5b78\u7fd2\uff0c\u4ee5\u53ca\u6280\u8853\u6307\u5c0e\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": "2c2dea2e-dc37-5673-8c63-51bc1db138b0", "url": "https://pretalx.com/jcconf-2024/speaker/G9HLDU/"}], "links": [], "feedback_url": "https://pretalx.com/jcconf-2024/talk/JSDXZ7/feedback/", "origin_url": "https://pretalx.com/jcconf-2024/talk/JSDXZ7/", "attachments": []}, {"guid": "ee786982-1ca4-546d-9286-73d907bcda65", "code": "APR3L3", "id": 54489, "logo": null, "date": "2024-09-27T11:25:00+08:00", "start": "11:25", "end": "2024-09-27T11:35:00+08:00", "duration": "00:10", "room": "401", "slug": "jcconf-2024-54489-break", "url": "https://pretalx.com/jcconf-2024/talk/APR3L3/", "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-2024/talk/APR3L3/feedback/", "origin_url": "https://pretalx.com/jcconf-2024/talk/APR3L3/", "attachments": []}, {"guid": "7d31d13a-bb1d-5b28-b253-c12d80dd1ede", "code": "RVVPPK", "id": 54881, "logo": null, "date": "2024-09-27T11:35:00+08:00", "start": "11:35", "end": "2024-09-27T11:40:00+08:00", "duration": "00:05", "room": "401", "slug": "jcconf-2024-54881-autopass", "url": "https://pretalx.com/jcconf-2024/talk/RVVPPK/", "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\u4e26\u4ee5\u300c\u2f9e\u2fc7\u5409\u300dApp\u7d2f\u7a4d\u8d85\u904e\u767e\u842c\u6703\u54e1\u6578\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", "description": null, "recording_license": "", "do_not_record": false, "persons": [], "links": [], "feedback_url": "https://pretalx.com/jcconf-2024/talk/RVVPPK/feedback/", "origin_url": "https://pretalx.com/jcconf-2024/talk/RVVPPK/", "attachments": []}, {"guid": "558e3b4a-2b86-59e0-b244-85d2c9647fd9", "code": "A7URHE", "id": 50109, "logo": null, "date": "2024-09-27T11:40:00+08:00", "start": "11:40", "end": "2024-09-27T12:25:00+08:00", "duration": "00:45", "room": "401", "slug": "jcconf-2024-50109-power-up-system-design-depth-along-with-amazon-q-developer", "url": "https://pretalx.com/jcconf-2024/talk/A7URHE/", "title": "Power Up system design depth along with Amazon Q Developer", "subtitle": "", "track": "401", "type": "Session", "language": "zh-hant", "abstract": "In this talk, Kim'd love to share how an problem solver start their problem framing process, through identifying key functional requirements, quality attributes, operation considerations and final design trade offs. Nowadays, problem solvers could leverage generate AI to boots up the journey, we may use Amazon Q Developer as one of the choice and benefit from its well tuned capabilities to dave daily life.", "description": null, "recording_license": "", "do_not_record": false, "persons": [{"code": "JBCJ7Z", "name": "Kim Kao", "avatar": "https://pretalx.com/media/avatars/JBCJ7Z_bqwprwZ.webp", "biography": "Life has been well-architected, a father of three, currently serving as a Senior Developer Specialist Solutions Architect at AWS, with a primary focus on the Developer Transformation (DevTran) program. Also, one of the founders of the Domain-Driven Design (DDD) Taiwan Community.\n\nDedicated to fostering a public resonance for Socio-Technical aspects, advocating for businesses to leverage DDD and convenient cloud services to craft more tailored system solutions, addressing tangible business challenges.", "public_name": "Kim Kao", "guid": "9f0f972b-c22b-519d-97e0-5ec982fc48ba", "url": "https://pretalx.com/jcconf-2024/speaker/JBCJ7Z/"}], "links": [], "feedback_url": "https://pretalx.com/jcconf-2024/talk/A7URHE/feedback/", "origin_url": "https://pretalx.com/jcconf-2024/talk/A7URHE/", "attachments": []}, {"guid": "2fc89d5a-0454-5f55-994c-c15b0f6be7de", "code": "97VDRZ", "id": 53564, "logo": null, "date": "2024-09-27T12:25:00+08:00", "start": "12:25", "end": "2024-09-27T13:20:00+08:00", "duration": "00:55", "room": "401", "slug": "jcconf-2024-53564-lunch-and-break", "url": "https://pretalx.com/jcconf-2024/talk/97VDRZ/", "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-2024/talk/97VDRZ/feedback/", "origin_url": "https://pretalx.com/jcconf-2024/talk/97VDRZ/", "attachments": []}, {"guid": "4c6febd0-b86d-5236-a6ec-573476c81f70", "code": "CM8XFZ", "id": 55224, "logo": null, "date": "2024-09-27T13:20:00+08:00", "start": "13:20", "end": "2024-09-27T13:25:00+08:00", "duration": "00:05", "room": "401", "slug": "jcconf-2024-55224-mysql", "url": "https://pretalx.com/jcconf-2024/talk/CM8XFZ/", "title": "\u5ba3\u50b3\u8b70\u7a0b\uff08MySQL\uff09", "subtitle": "", "track": "Promotion", "type": "Session", "language": "zh-hant", "abstract": "-", "description": null, "recording_license": "", "do_not_record": false, "persons": [], "links": [], "feedback_url": "https://pretalx.com/jcconf-2024/talk/CM8XFZ/feedback/", "origin_url": "https://pretalx.com/jcconf-2024/talk/CM8XFZ/", "attachments": []}, {"guid": "2a7d2069-8613-57f4-ac15-b3271614a2f0", "code": "X8CWJX", "id": 51577, "logo": null, "date": "2024-09-27T13:25:00+08:00", "start": "13:25", "end": "2024-09-27T13:40:00+08:00", "duration": "00:15", "room": "401", "slug": "jcconf-2024-51577-graphql-in-java-best-practices-for-modern-api-development", "url": "https://pretalx.com/jcconf-2024/talk/X8CWJX/", "title": "GraphQL in Java: Best Practices for Modern API Development(\u4e0d\u9304\u5f71)", "subtitle": "", "track": "401", "type": "Quickie", "language": "zh-hant", "abstract": "GraphQL \u8fd1\u5e74\u4f86\u5728 API \u958b\u767c\u4e2d\u8fc5\u901f\u5d1b\u8d77\uff0c\u5e36\u4f86\u4e86\u6bd4\u50b3\u7d71 REST API \u66f4\u9748\u6d3b\u548c\u9ad8\u6548\u7684\u8cc7\u6599\u67e5\u8a62\u65b9\u5f0f\u3002\u672c\u6b21\u4e3b\u984c\u5c07\u4ecb\u7d39\u4ec0\u9ebc\u662f GraphQL\u3001\u5982\u4f55\u5728 Java \u4e2d\u4f7f\u7528 GraphQL \u9032\u884c\u5be6\u73fe\uff0c\u4e26\u63a2\u8a0e DataLoader \u7684\u6027\u80fd\u512a\u5316\u6280\u8853\u548c Schema Stitching \u53ca Federation \u7684\u61c9\u7528\uff0c\u9069\u5408\u5e0c\u671b\u4e86\u89e3\u548c\u61c9\u7528 GraphQL \u7684 Java \u958b\u767c\u8005\u53c3\u52a0\u3002", "description": null, "recording_license": "", "do_not_record": false, "persons": [{"code": "JY3XZ3", "name": "Alice Yang", "avatar": null, "biography": "Java backend developer at Cathay Holdings", "public_name": "Alice Yang", "guid": "00aaa90b-2751-56dd-9503-d7176b816e32", "url": "https://pretalx.com/jcconf-2024/speaker/JY3XZ3/"}], "links": [], "feedback_url": "https://pretalx.com/jcconf-2024/talk/X8CWJX/feedback/", "origin_url": "https://pretalx.com/jcconf-2024/talk/X8CWJX/", "attachments": []}, {"guid": "5e24319f-0808-5819-a16c-b330ab0e6b00", "code": "3URPM8", "id": 54490, "logo": null, "date": "2024-09-27T13:40:00+08:00", "start": "13:40", "end": "2024-09-27T13:45:00+08:00", "duration": "00:05", "room": "401", "slug": "jcconf-2024-54490-break", "url": "https://pretalx.com/jcconf-2024/talk/3URPM8/", "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-2024/talk/3URPM8/feedback/", "origin_url": "https://pretalx.com/jcconf-2024/talk/3URPM8/", "attachments": []}, {"guid": "115c9b68-9d03-5056-8ae1-8ea3a5d3068a", "code": "GN7JYM", "id": 50208, "logo": null, "date": "2024-09-27T13:45:00+08:00", "start": "13:45", "end": "2024-09-27T14:00:00+08:00", "duration": "00:15", "room": "401", "slug": "jcconf-2024-50208-openrewrite", "url": "https://pretalx.com/jcconf-2024/talk/GN7JYM/", "title": "OpenRewrite \u8207\u7a0b\u5f0f\u91cd\u69cb\uff1a\u63d0\u5347\u7a0b\u5f0f\u78bc\u54c1\u8cea\u7684\u5229\u5668", "subtitle": "", "track": "401", "type": "Quickie", "language": "zh-hant", "abstract": "OpenRewrite \u662f\u4e00\u500b\u5f37\u5927\u7684\u958b\u6e90\u81ea\u52d5\u5316\u91cd\u69cb\u5e73\u53f0\uff0c\u4e3b\u8981\u7528\u65bc\u73fe\u4ee3\u5316\u548c\u6a19\u6e96\u5316\u8655\u7406 Java \u53ca\u5176\u4ed6\u7a0b\u5f0f\u8a9e\u8a00\u3002\u63d0\u4f9b\u4e86\u591a\u7a2e\u5de5\u5177\u548c\u898f\u5247\uff0c\u4f7f\u958b\u767c\u8005\u80fd\u5920\u7cfb\u7d71\u6027\u5730\u6539\u9032\u7a0b\u5f0f\u5eab\u7684\u54c1\u8cea\u548c\u53ef\u7dad\u8b77\u6027\u3002\u900f\u904e\u5b9a\u7fa9\u53ef\u91cd\u7528\u7684\u91cd\u69cb\u898f\u5247\uff0cOpenRewrite \u80fd\u5920\u5728\u6574\u500b\u61c9\u7528\u7a0b\u5e8f\u6216\u591a\u500b\u9805\u76ee\u4e2d\u57f7\u884c\u5ee3\u6cdb\u7684\u7a0b\u5f0f\u78bc\u8b8a\u66f4\uff0c\u5305\u62ec\u683c\u5f0f\u5316\u548c\u4f9d\u8cf4\u7ba1\u7406\u7b49\u4efb\u52d9\u3002\u9019\u4e9b\u81ea\u52d5\u5316\u7684\u4efb\u52d9\u4e0d\u50c5\u964d\u4f4e\u4e86\u932f\u8aa4\u7387\uff0c\u9084\u63d0\u9ad8\u4e86\u958b\u767c\u6548\u7387\u3002\u6b64\u5916\uff0cOpenRewrite \u652f\u6301\u6301\u7e8c\u6574\u5408\u6d41\u7a0b\uff0c\u53ef\u8f15\u9b06\u878d\u5165\u73fe\u6709\u7684\u958b\u767c\u5de5\u5177\uff08\u5982 Gradle \u548c Maven\uff09\uff0c\u5f9e\u800c\u5728\u958b\u767c\u7684\u65e9\u671f\u968e\u6bb5\u5be6\u73fe\u7a0b\u5f0f\u78bc\u6539\u9032\u548c\u6a19\u6e96\u5316\u3002", "description": null, "recording_license": "", "do_not_record": false, "persons": [{"code": "CQQZ7H", "name": "ethan", "avatar": null, "biography": null, "public_name": "ethan", "guid": "6e5d9fac-265c-535e-bd46-4a3d513ab46c", "url": "https://pretalx.com/jcconf-2024/speaker/CQQZ7H/"}], "links": [], "feedback_url": "https://pretalx.com/jcconf-2024/talk/GN7JYM/feedback/", "origin_url": "https://pretalx.com/jcconf-2024/talk/GN7JYM/", "attachments": []}, {"guid": "7fdf5e3a-3346-5885-8118-0a2647121a37", "code": "JTCTNR", "id": 54492, "logo": null, "date": "2024-09-27T14:00:00+08:00", "start": "14:00", "end": "2024-09-27T14:05:00+08:00", "duration": "00:05", "room": "401", "slug": "jcconf-2024-54492-break", "url": "https://pretalx.com/jcconf-2024/talk/JTCTNR/", "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-2024/talk/JTCTNR/feedback/", "origin_url": "https://pretalx.com/jcconf-2024/talk/JTCTNR/", "attachments": []}, {"guid": "1d15a888-5103-5c4c-a76d-703e436fc060", "code": "KSGLFJ", "id": 55225, "logo": null, "date": "2024-09-27T14:05:00+08:00", "start": "14:05", "end": "2024-09-27T14:10:00+08:00", "duration": "00:05", "room": "401", "slug": "jcconf-2024-55225-jetbrains", "url": "https://pretalx.com/jcconf-2024/talk/KSGLFJ/", "title": "\u5ba3\u50b3\u8b70\u7a0b\uff08JetBrains\uff09", "subtitle": "", "track": "Promotion", "type": "Session", "language": "zh-hant", "abstract": "-", "description": null, "recording_license": "", "do_not_record": false, "persons": [], "links": [], "feedback_url": "https://pretalx.com/jcconf-2024/talk/KSGLFJ/feedback/", "origin_url": "https://pretalx.com/jcconf-2024/talk/KSGLFJ/", "attachments": []}, {"guid": "3ab14bcc-b1d9-5394-b4b6-1b31f386fc2c", "code": "APUPWD", "id": 50551, "logo": null, "date": "2024-09-27T14:10:00+08:00", "start": "14:10", "end": "2024-09-27T14:55:00+08:00", "duration": "00:45", "room": "401", "slug": "jcconf-2024-50551-building-event-driven-architecture-with-spring-event-and-spring-modulith", "url": "https://pretalx.com/jcconf-2024/talk/APUPWD/", "title": "Building Event-Driven Architecture with Spring Event and Spring Modulith", "subtitle": "", "track": "401", "type": "Session", "language": "zh-hant", "abstract": "\u4e00\u822c\u5728\u5efa\u69cbEvent-Driven Architecture (EDA)\u7684\u7cfb\u7d71\u6642\uff0c\u9996\u5148\u6703\u806f\u60f3\u5230\u5927\u578b\u7684\u5206\u6563\u5f0f\u7cfb\u7d71\u8a2d\u8a08\uff0c\u4e26\u9700\u5c0e\u5165\u91cd\u91cf\u7d1a\u7684Message Broker( \u4f8b\u5982Kafka\u6216RabbitMQ )\u4f86\u5b8c\u6210\u3002\n\u4f46\u8b1b\u8005\u8a8d\u70ba\u5373\u4fbf\u662f\u55ae\u9ad4\u5f0f\u7cfb\u7d71(\u6216\u55ae\u4e00\u5fae\u670d\u52d9\u5167\u90e8)\uff0c\u4e5f\u80fd\u5229\u7528Event-Driven Design\u7684\u601d\u7dad\u5efa\u69cb\u51fa\u5f48\u6027\u53ca\u4f4e\u8026\u5408\u7684\u826f\u597d\u67b6\u69cb\uff0c\u4e26\u4e14\u5728\u9700\u8981\u64f4\u5c55\u5230\u5206\u6563\u5f0f\u7cfb\u7d71\u6216\u5fae\u670d\u52d9\u6642\uff0c\u63d0\u4f9b\u826f\u597d\u7684\u7121\u7e2b\u63a5\u8ecc \uff0c\u8b1b\u8005\u5c07\u5206\u4eab\u5982\u4f55\u5229\u7528Spring Event\u53caSpring Modulith\u7684\u7279\u6027\u4f86\u9054\u6210\u6b64\u76ee\u6a19\u3002", "description": null, "recording_license": "", "do_not_record": false, "persons": [{"code": "UMLFVX", "name": "Stone Huang", "avatar": "https://pretalx.com/media/avatars/UMLFVX_l2lLhMt.webp", "biography": "\u8d85\u904e15\u5e74\u7684\u7cfb\u7d71\u8a2d\u8a08\u3001\u8edf\u9ad4\u67b6\u69cb\u53ca\u958b\u767c\u7d93\u9a57\uff0c\u7814\u7a76\u9818\u57df\u5305\u542b\u5206\u6563\u5f0f\u7cfb\u7d71\u8a2d\u8a08\u3001\u5fae\u670d\u52d9\u3001TDD\u3001Design Pattern\u53ca\u5340\u584a\u93c8, \u6301\u7e8c\u63a2\u7d22\u65b0\u5947\u6709\u8da3\u7684\u6771\u897f\u3002\u73fe\u4efb\u8077\u65bcXREX Inc.\uff0c\u64d4\u4efbPrincipal Backend Engineer\u89d2\u8272\u3002", "public_name": "Stone Huang", "guid": "ded08718-c912-52b4-8ea9-d85c85d64607", "url": "https://pretalx.com/jcconf-2024/speaker/UMLFVX/"}], "links": [], "feedback_url": "https://pretalx.com/jcconf-2024/talk/APUPWD/feedback/", "origin_url": "https://pretalx.com/jcconf-2024/talk/APUPWD/", "attachments": []}, {"guid": "09c8d908-7736-585f-8f00-1aaffb4a0aa6", "code": "APPPQC", "id": 54493, "logo": null, "date": "2024-09-27T14:55:00+08:00", "start": "14:55", "end": "2024-09-27T15:00:00+08:00", "duration": "00:05", "room": "401", "slug": "jcconf-2024-54493-break", "url": "https://pretalx.com/jcconf-2024/talk/APPPQC/", "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-2024/talk/APPPQC/feedback/", "origin_url": "https://pretalx.com/jcconf-2024/talk/APPPQC/", "attachments": []}, {"guid": "d35144b2-6c2e-586f-a8df-df94d431c4ff", "code": "DX7NJL", "id": 55226, "logo": null, "date": "2024-09-27T15:00:00+08:00", "start": "15:00", "end": "2024-09-27T15:05:00+08:00", "duration": "00:05", "room": "401", "slug": "jcconf-2024-55226-taboola", "url": "https://pretalx.com/jcconf-2024/talk/DX7NJL/", "title": "\u5ba3\u50b3\u8b70\u7a0b\uff08Taboola\uff09", "subtitle": "", "track": "Promotion", "type": "Session", "language": "zh-hant", "abstract": "Taboola powers recommendations for the open web, helping people discover things they may like. The company's platform, powered by artificial intelligence, is used by digital properties, including websites, devices and mobile apps, to drive monetization and user engagement. Taboola has long-term partnerships with some of the top digital properties in the world, including CNBC, NBC News, Business Insider, The Independent and El Mundo. More than 15,000 advertisers use Taboola to reach over 500 million daily active users in a brand-safe environment. The company has offices in 22 cities worldwide, including New York and Tel Aviv.\nCompany website: https://www.taboola.com/zh-hant/\nTaboola Taiwan Career page: https://www.taboola.com/careers/jobs#team=&location=18981", "description": null, "recording_license": "", "do_not_record": false, "persons": [], "links": [], "feedback_url": "https://pretalx.com/jcconf-2024/talk/DX7NJL/feedback/", "origin_url": "https://pretalx.com/jcconf-2024/talk/DX7NJL/", "attachments": []}, {"guid": "622394fa-1b59-53f3-8e82-1a69bff446c5", "code": "WDAS7E", "id": 52147, "logo": null, "date": "2024-09-27T15:05:00+08:00", "start": "15:05", "end": "2024-09-27T15:50:00+08:00", "duration": "00:45", "room": "401", "slug": "jcconf-2024-52147-liquibase", "url": "https://pretalx.com/jcconf-2024/talk/WDAS7E/", "title": "\u4f7f\u7528Liquibase\u5354\u52a9\u5ba2\u6236\u8cc7\u6599\u9077\u79fb\uff1a\u5f9e\u5c0e\u5165\u5230\u6574\u5408\u9032\u5c08\u6848\u7684\u5fc3\u8def\u6b77\u7a0b", "subtitle": "", "track": "401", "type": "Session", "language": "zh-hant", "abstract": "\u5728\u73fe\u4eca\u5feb\u901f\u8b8a\u9077\u7684\u8edf\u9ad4\u958b\u767c\u74b0\u5883\u4e2d\uff0c\u8cc7\u6599\u5eab\u7684\u7248\u672c\u63a7\u5236\u8207\u8cc7\u6599\u9077\u79fb\u6108\u767c\u91cd\u8981\u3002\u672c\u6b21\u5206\u4eab\u4e3b\u984c\u5167\u5bb9\u5305\u62ecLiquibase\u57fa\u672c\u4ecb\u7d39\uff1b\u5c07Liquibase\u5c0e\u5165\u73fe\u6709\u5c08\u6848\u5354\u52a9\u5ba2\u6236\u8cc7\u6599\u5eab\u7248\u63a7\u7684\u60c5\u5883\u8655\u7406\u5206\u4eab\uff1b\u5354\u52a9\u958b\u767c\u4eba\u54e1\u4f7f\u7528\u5957\u4ef6\u5982JPA Buddy\u8207Liquibase MavenPlugin\u5de5\u5177\uff0c\u81ea\u52d5\u5316\u5b8c\u6210\u8cc7\u6599\u5eab\u7ba1\u7406\u8207\u90e8\u7f72\u3002\u5e0c\u671b\u80fd\u85c9\u7531\u9019\u6b21\u7684\u5206\u4eab\u8b93\u8207\u6703\u8005\u66f4\u597d\u5730\u7406\u89e3\u548c\u61c9\u7528Liquibase\uff0c\u63d0\u5347\u5c08\u6848\u7684\u8cc7\u6599\u5eab\u7ba1\u7406\u6548\u80fd\u3002", "description": null, "recording_license": "", "do_not_record": false, "persons": [{"code": "M9PSFV", "name": "Nick Wu", "avatar": "https://pretalx.com/media/avatars/M9PSFV_IzZP93R.webp", "biography": "Work as software engineer at SoftLeader.\nDedicated to backend and microservices.", "public_name": "Nick Wu", "guid": "b8746bd8-9433-5701-8920-f11c62bfd63a", "url": "https://pretalx.com/jcconf-2024/speaker/M9PSFV/"}], "links": [], "feedback_url": "https://pretalx.com/jcconf-2024/talk/WDAS7E/feedback/", "origin_url": "https://pretalx.com/jcconf-2024/talk/WDAS7E/", "attachments": [{"title": "Liquibase slides", "url": "/media/jcconf-2024/submissions/WDAS7E/resources/JCConf2024-Liquibase-Nick_HacdpJo.pdf", "type": "related"}]}, {"guid": "a94ead9f-909c-565d-ac49-8a29c17de99a", "code": "YDE7MU", "id": 53565, "logo": null, "date": "2024-09-27T15:50:00+08:00", "start": "15:50", "end": "2024-09-27T16:20:00+08:00", "duration": "00:30", "room": "401", "slug": "jcconf-2024-53565-tea-time", "url": "https://pretalx.com/jcconf-2024/talk/YDE7MU/", "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-2024/talk/YDE7MU/feedback/", "origin_url": "https://pretalx.com/jcconf-2024/talk/YDE7MU/", "attachments": []}, {"guid": "50b72288-d2eb-5125-b6d4-da36168dc8f9", "code": "XDUG9V", "id": 52146, "logo": null, "date": "2024-09-27T16:20:00+08:00", "start": "16:20", "end": "2024-09-27T17:05:00+08:00", "duration": "00:45", "room": "401", "slug": "jcconf-2024-52146-jib--java", "url": "https://pretalx.com/jcconf-2024/talk/XDUG9V/", "title": "Jib \u6253\u5305 Java \u61c9\u7528\u7684\u90a3\u4e9b\u4e8b\uff1a\u5fc3\u5f97\u5206\u4eab\u8207\u64f4\u5145\u653b\u7565", "subtitle": "", "track": "401", "type": "Session", "language": "zh-hant", "abstract": "\u8b93\u6211\u5011\u4f86\u804a\u804a Jib\uff0c\u9019\u662f\u500b\u5c08\u9580\u70ba Java \u958b\u767c\u8005\u8a2d\u8a08\u7684\u5bb9\u5668\u6253\u5305\u5de5\u5177\u3002\u6211\u6703\u7c21\u55ae\u7684\u4ecb\u7d39\u5b83\u7684\u512a\u9ede\u548c\u904b\u4f5c\u65b9\u5f0f\uff0c\u4e26\u5c55\u793a\u5982\u4f55\u7528 Jib \u6253\u5305 Java \u61c9\u7528\u7a0b\u5f0f\uff0c\u63a5\u8457\u518d\u5206\u4eab\u5982\u4f55\u64f4\u5145 Jib \u7684\u529f\u80fd\uff0c\u4ee5\u6eff\u8db3\u6211\u5011\u5718\u968a\u7684\u4f7f\u7528\u5834\u666f\u3002\u5e0c\u671b\u9019\u6b21\u5206\u4eab\u80fd\u5e6b\u52a9\u4f60\u66f4\u597d\u7684\u4f7f\u7528 Jib\uff01", "description": null, "recording_license": "", "do_not_record": false, "persons": [{"code": "LEVVYU", "name": "Matt Ho", "avatar": "https://pretalx.com/media/avatars/LEVVYU_JGu0JNp.webp", "biography": "Hi\uff0c\u6211\u662f Matt\uff0c\u4efb\u8077\u65bc\u677e\u51cc\u79d1\u6280\u7814\u767c\u90e8\u9580\uff0c\u64c1\u6709\u591a\u5e74 Java \u958b\u767c\u548c\u5bb9\u5668\u5316\u9818\u57df\u7684\u7d93\u9a57\uff0c\u559c\u6b61\u5c08\u7814\u5404\u7a2e\u65b0\u6280\u8853\uff0c\u5c08\u6ce8\u65bc\u4f01\u696d\u67b6\u69cb\u7684\u89e3\u6c7a\u65b9\u6848\uff0c\u5076\u723e\u4e5f\u6703\u8ca2\u737b\u65bc\u958b\u6e90\u5c08\u6848\u3002", "public_name": "Matt Ho", "guid": "b6de89e0-f77a-531f-b776-c08a5ea3904f", "url": "https://pretalx.com/jcconf-2024/speaker/LEVVYU/"}], "links": [], "feedback_url": "https://pretalx.com/jcconf-2024/talk/XDUG9V/feedback/", "origin_url": "https://pretalx.com/jcconf-2024/talk/XDUG9V/", "attachments": []}, {"guid": "f0631778-f0b5-5a9e-abbb-3daa98c48c63", "code": "8GEJKM", "id": 54494, "logo": null, "date": "2024-09-27T17:05:00+08:00", "start": "17:05", "end": "2024-09-27T17:15:00+08:00", "duration": "00:10", "room": "401", "slug": "jcconf-2024-54494-break", "url": "https://pretalx.com/jcconf-2024/talk/8GEJKM/", "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-2024/talk/8GEJKM/feedback/", "origin_url": "https://pretalx.com/jcconf-2024/talk/8GEJKM/", "attachments": []}, {"guid": "70156ef2-bd73-549e-a691-ad6cc8a54704", "code": "BRYCZK", "id": 51432, "logo": null, "date": "2024-09-27T17:15:00+08:00", "start": "17:15", "end": "2024-09-27T18:00:00+08:00", "duration": "00:45", "room": "401", "slug": "jcconf-2024-51432-java--llm", "url": "https://pretalx.com/jcconf-2024/talk/BRYCZK/", "title": "Java \u4e5f\u80fd\u73a9\u8f49 LLM - \u6253\u9020\u591a\u8a9e\u8a00\u6a21\u578b\u61c9\u7528(\u4e0d\u9304\u5f71)", "subtitle": "", "track": "401", "type": "Session", "language": "zh-hant", "abstract": "\u5728\u7576\u4eca\u4eba\u5de5\u667a\u80fd\u6280\u8853\u8fc5\u731b\u767c\u5c55\u7684\u6642\u4ee3\uff0cJava \u958b\u767c\u8005\u5728\u591a\u8a9e\u8a00\u6a21\u578b\u61c9\u7528\u7684\u9818\u57df\u9762\u81e8\u8457\u7a7a\u524d\u7684\u6a5f\u9047\u8207\u6311\u6230\u3002\u9084\u5728\u7fa8\u6155\u5176\u4ed6\u8a9e\u8a00\u7684\u5148\u9032\u5de5\u5177\u55ce\uff1f\u5225\u64d4\u5fc3\uff0c\u56e0\u70ba Java \u73fe\u5df2\u8fce\u4f86\u4e86 LangChain4j \u548c Spring AI \u9019\u5169\u5927\u5f37\u529b\u652f\u63f4\uff01\u5c07\u70ba Java \u958b\u767c\u8005\u63d0\u4f9b\u4e86\u524d\u6240\u672a\u6709\u7684\u4fbf\u5229\u548c\u52d5\u529b\uff0c\u4f7f\u5f97\u8de8\u8db3\u591a\u8a9e\u8a00\u6a21\u578b\u61c9\u7528\u8b8a\u5f97\u89f8\u624b\u53ef\u53ca\u3002\n\u5728\u9019\u6b21\u7684\u5206\u4eab\u4e2d\uff0c\u6211\u5c07\u4ecb\u7d39\u5982\u4f55\u61c9\u7528 LangChain4j \u548c Spring AI \u4f86\u958b\u767c\u548c\u90e8\u7f72\u591a\u8a9e\u8a00\u6a21\u578b\u61c9\u7528\u3002\u7121\u8ad6\u4f60\u662f\u5c0b\u6c42\u7a81\u7834\uff0c\u9084\u662f\u5e0c\u671b\u63a2\u7d22 AI \u7684\u65b0\u9818\u57df\uff0c\u90fd\u6b61\u8fce\u4e00\u8d77\u4f86\u63a2\u7d22\u65b0\u7684\u53ef\u80fd\u6027\uff01", "description": null, "recording_license": "", "do_not_record": false, "persons": [{"code": "AFYPQB", "name": "\u6731\u5c1a\u79ae", "avatar": "https://pretalx.com/media/avatars/AFYPQB_eAVHp1F.webp", "biography": "\u76ee\u524d\u670d\u52d9\u65bc\u570b\u6cf0\u91d1\u63a7\uff0c\u672c\u8eab\u662f\u4e00\u500b Java \u958b\u767c\u8005\uff0c\u71b1\u611b\u958b\u767c\u7a0b\u5f0f\u8207\u96f2\u7aef\u6280\u8853\u3002\n\nBlog: https://blog.samzhu.dev/", "public_name": "\u6731\u5c1a\u79ae", "guid": "a383a3f1-d5a4-5b3c-893a-572f69a39cf5", "url": "https://pretalx.com/jcconf-2024/speaker/AFYPQB/"}], "links": [], "feedback_url": "https://pretalx.com/jcconf-2024/talk/BRYCZK/feedback/", "origin_url": "https://pretalx.com/jcconf-2024/talk/BRYCZK/", "attachments": []}], "402AB": [{"guid": "448bdf92-2044-59c6-a305-4bfe8b9e2b91", "code": "L3ZHTN", "id": 51310, "logo": null, "date": "2024-09-27T10:40:00+08:00", "start": "10:40", "end": "2024-09-27T11:25:00+08:00", "duration": "00:45", "room": "402AB", "slug": "jcconf-2024-51310-kotlin-2-0--kotlin", "url": "https://pretalx.com/jcconf-2024/talk/L3ZHTN/", "title": "Kotlin 2.0 \u964d\u8089 - Kotlin \u7684\u904e\u53bb\u3001\u73fe\u5728\u4ee5\u53ca\u672a\u4f86", "subtitle": "", "track": "402AB", "type": "Session", "language": "zh-hant", "abstract": "\u81ea 2016 Kotlin \u767c\u5e03 1.0 \u7248\u5f8c\uff0c\u8fc4\u4eca\u5df2\u904e\u4e86 8 \u5e74\uff0c\u5728\u6bcf\u6b21\u7684\u6539\u7248\u90fd\u6703\u5f15\u5165\u65b0\u529f\u80fd\u4ee5\u53ca\u512a\u5316\uff0c\u5728\u773e\u591a Kotliner \u7684\u671f\u76fc\u4e0b\uff0c\u4eca\u5e74\uff08 2024 \u5e74\uff09\u7d42\u65bc\u8fce\u4f86\u4e86 2.0 \u7248\uff0c\u5728 2.0 \u7248\u4e2d\uff0c\u6211\u5011\u5c07\u8fce\u4f86\u4ec0\u9ebc\u91cd\u5927\u7684\u66f4\u65b0\u5462\uff1f\n\n\u672c\u6b21\u5206\u4eab\u5c07\u4ecb\u7d39 Kotlin \u7684\u6b77\u53f2\u3001 Kotlin \u7684\u751f\u614b\u7cfb\u4ee5\u53ca 2.0 \u7248\u5e36\u4f86\u7684\u65b0\u529f\u80fd\u53ca K2 Compiler \u7684\u4ecb\u7d39\u3002\n\n\u7121\u8ad6\u60a8\u662f\u8cc7\u6df1 Kotlin \u958b\u767c\u8005\u9084\u662f\u525b\u525b\u5165\u9580\u7684\u65b0\u624b\uff0c\u90fd\u80fd\u5920\u5728\u672c\u5834\u5206\u4eab\u4e2d\uff0c\u7372\u5f97\u6700\u8a73\u76e1\u7684 Kotlin \u4ecb\u7d39\u53ca\u6700\u65b0\u8cc7\u8a0a\uff0c\u5e6b\u52a9\u60a8\u638c\u63e1 Kotlin \u904e\u53bb\u3001\u73fe\u5728\u4ee5\u53ca\u672a\u4f86\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": "Kotlin\u3001Flutter \u611b\u597d\u8005\u3002\n\u5c08\u6ce8\u65bc\u958b\u767c\u624b\u6a5f App \u7684\u958b\u767c\uff0c\u5f9e Android App \u5230\u8de8\u5e73\u53f0 App \u3002\nMedium\uff1ahttps://medium.com/@andyludeveloper", "public_name": "Andy Lu", "guid": "fa631d1a-ba3d-583d-a8ec-7e7009637bea", "url": "https://pretalx.com/jcconf-2024/speaker/JWDK8N/"}], "links": [], "feedback_url": "https://pretalx.com/jcconf-2024/talk/L3ZHTN/feedback/", "origin_url": "https://pretalx.com/jcconf-2024/talk/L3ZHTN/", "attachments": []}, {"guid": "67f93baf-955c-5734-8e6c-852fa1dca400", "code": "YEJ7VN", "id": 52269, "logo": null, "date": "2024-09-27T11:40:00+08:00", "start": "11:40", "end": "2024-09-27T12:25:00+08:00", "duration": "00:45", "room": "402AB", "slug": "jcconf-2024-52269", "url": "https://pretalx.com/jcconf-2024/talk/YEJ7VN/", "title": "\u5f9e\u7d05\u71c8\u5230\u7da0\u71c8", "subtitle": "", "track": "402AB", "type": "Session", "language": "zh-hant", "abstract": "\u6e2c\u8a66\u9a45\u52d5\u958b\u767c\uff08TDD\uff09\u662f\u73fe\u4ee3\u8edf\u9ad4\u5de5\u7a0b\u9818\u57df\u4e2d\u5ee3\u70ba\u4eba\u77e5\u7684\u958b\u767c\u65b9\u6cd5\u3002\u5148\u64b0\u5beb\u6e2c\u8a66\u500b\u6848\u63cf\u8ff0\u5be6\u4f5c\u529f\u80fd\u7684\u884c\u70ba\uff08\u7d05\u71c8\uff09\uff0c\u518d\u7528\u6700\u5c11\u91cf\u7684\u7a0b\u5f0f\u78bc\u4f7f\u5176\u901a\u904e\u6e2c\u8a66\uff08\u7da0\u71c8\uff09\uff0c\u6709\u52a9\u65bc\u5efa\u7acb\u66f4\u597d\u7684\u8a2d\u8a08\u601d\u7dad\u3001\u63d0\u5347\u7a0b\u5f0f\u78bc\u53ef\u8b80\u6027\u548c\u7a69\u5b9a\u5ea6\u3002\n\n\u5728 TDD \u7684\u904e\u7a0b\u4e2d\uff0c\u958b\u767c\u4eba\u54e1\u5e38\u9700\u8981\u6a21\u64ec\u6216\u5916\u90e8\u670d\u52d9\uff08\u4f8b\u5982\u91d1\u6d41\u6216\u5176\u5b83 API \u4e32\u63a5\uff09\uff0c\u5e38\u6703\u7528\u5230 Mock \u8207  Stub \u7684\u624b\u6cd5\uff0c\u9019\u5169\u8005\u96d6\u6709\u76f8\u4f3c\u4f46\u7126\u9ede\u6709\u4e9b\u4e0d\u540c\u3002\n\n\u672c\u8b1b\u984c\u5c07\u6703\u4ecb\u7d39 TDD \u7684\u57fa\u672c\u539f\u5247\uff0c\u4f8b\u5982\u54ea\u4e9b\u529f\u80fd\u8a72\u6e2c\u3001\u54ea\u4e9b\u4e0d\u7528\u6e2c\u4e5f\u6c92\u95dc\u4fc2\uff0c\u5305\u62ec Mock \u8207 Stub \u7684\u61c9\u7528\uff0c\u4e26\u4f7f\u7528\u6e2c\u8a66\u6846\u67b6 Kotest \u70ba\u7bc4\u4f8b\uff0c\u5be6\u969b\u5c55\u793a\u5982\u4f55\u5728 Kotlin \u5c08\u6848\u4e2d\u5be6\u8e10 TDD \u958b\u767c\u6d41\u7a0b\u3002", "description": null, "recording_license": "", "do_not_record": false, "persons": [{"code": "N8MTD9", "name": "\u9ad8\u898b\u9f8d", "avatar": "https://pretalx.com/media/avatars/N8MTD9_C3UdLyl.webp", "biography": "\u7db2\u7ad9\u7a0b\u5f0f\u958b\u767c\u8005 / \u8b1b\u5e2b / \u904a\u6232\u5b85 / \u6f2b\u756b\u5b85\uff0c\u559c\u611b\u975e\u4e3b\u6d41\u7684\u65b0\u73a9\u5177\uff0c\u8457\u6709\u300a\u70ba\u4f60\u81ea\u5df1\u5b78 Git\u300b\u4ee5\u53ca\u300a\u70ba\u4f60\u81ea\u5df1\u5b78 Ruby on Rails\u300b\u7b49\u66a2\u92b7\u66f8\u7c4d\uff0c\u6700\u8fd1\u5728\u5fd9\u8457\u5beb\u300a\u70ba\u4f60\u81ea\u5df1\u5b78 Python\u300b\u3002", "public_name": "\u9ad8\u898b\u9f8d", "guid": "625a2a41-4279-5592-95b3-5155e5487759", "url": "https://pretalx.com/jcconf-2024/speaker/N8MTD9/"}], "links": [], "feedback_url": "https://pretalx.com/jcconf-2024/talk/YEJ7VN/feedback/", "origin_url": "https://pretalx.com/jcconf-2024/talk/YEJ7VN/", "attachments": []}, {"guid": "d073a527-65cb-5d8a-b163-9dd57b602cbf", "code": "HCW3GW", "id": 51339, "logo": null, "date": "2024-09-27T13:25:00+08:00", "start": "13:25", "end": "2024-09-27T13:40:00+08:00", "duration": "00:15", "room": "402AB", "slug": "jcconf-2024-51339-java-spi-keycloak", "url": "https://pretalx.com/jcconf-2024/talk/HCW3GW/", "title": "\u6dfa\u5165\u6dfa\u51faJAVA SPI-\u4ee5Keycloak\u5be6\u6230\u70ba\u4f8b", "subtitle": "", "track": "402AB", "type": "Quickie", "language": "zh-hant", "abstract": "\u7c21\u55ae\u4ecb\u7d39JAV SPI\uff08Service Provider Interface) \u7684\u7528\u9014\u8207\u5982\u4f55\u5be6\u73fe\uff0c\u4e26\u900f\u904e\u7a0b\u5f0f\u7bc4\u4f8b\u4ee5\u958b\u767c\u904a\u6232\u70ba\u60c5\u5883\uff0c\u4ee5\u5de5\u7a0b\u5e2b\u7684\u89d2\u5ea6\u4f86\u770b\u5982\u4f55\u5be6\u4f5cSPI\u6a5f\u5236\uff0c\u4e2d\u9593\u518d\u4ee5Keycloak\u81ea\u5b9a\u7fa9\u6b0a\u9650\u9a57\u8b49\u6d41\u7a0b\u70ba\u4f8b\uff0c\u8aaa\u660e\u5be6\u6230\u4e2d\u5982\u4f55\u52d5\u614b\u8f09\u5165SPI\u8207\u61c9\u7528\u60c5\u5883,\u4ee5\u9054\u6210\u4f7f\u7528\u5171\u901a\u6a21\u7d44\u7684\u60c5\u6cc1\u4e0b\u4e5f\u80fd\u6709\u81ea\u5b9a\u7fa9\u7684\u5f48\u6027\u8abf\u6574\uff0c\u6700\u5f8c\u7e3d\u7d50SPI\u512a\u9ede\u8207\u7f3a\u9ede\u3002", "description": null, "recording_license": "", "do_not_record": false, "persons": [{"code": "7KG87A", "name": "\u9673\u51a0\u7def", "avatar": "https://pretalx.com/media/avatars/7KG87A_S6UA6nv.webp", "biography": "\u64c1\u67095\u5e74\u5f8c\u7aef\u5de5\u7a0b\u5e2b\uff0c1\u5e74DevOps, 1\u5e74\u5168\u7aef\u5de5\u7a0b\u5e2b\u7d93\u9a57\n\u6709GitLab+GCP+GKE\u5efa\u7f6e\u904e\u5b8c\u6574\u5fae\u670d\u52d9\u7cfb\u7d71\u7d93\u9a57\n\u4e3b\u8981\u8a9e\u8a00\u70ba:java\u3001Spring Boot", "public_name": "\u9673\u51a0\u7def", "guid": "f91a7a0a-884a-558a-a236-0d8c6b51576b", "url": "https://pretalx.com/jcconf-2024/speaker/7KG87A/"}], "links": [], "feedback_url": "https://pretalx.com/jcconf-2024/talk/HCW3GW/feedback/", "origin_url": "https://pretalx.com/jcconf-2024/talk/HCW3GW/", "attachments": [{"title": "\u6f14\u8b1b\u7a3f", "url": "/media/jcconf-2024/submissions/HCW3GW/resources/%E9%99%B3%E5%86%A0%E7%B7%AF_J2024_20240919_v4.2_A360T1E.pptx", "type": "related"}]}, {"guid": "72c3607c-0d8d-5bd9-b345-8e4c10de22b6", "code": "ELYBMM", "id": 51314, "logo": null, "date": "2024-09-27T13:45:00+08:00", "start": "13:45", "end": "2024-09-27T14:00:00+08:00", "duration": "00:15", "room": "402AB", "slug": "jcconf-2024-51314-kubernetes--keycloak-cluster", "url": "https://pretalx.com/jcconf-2024/talk/ELYBMM/", "title": "\u5982\u4f55\u5728 Kubernetes \u74b0\u5883\u5be6\u73fe Keycloak Cluster", "subtitle": "", "track": "402AB", "type": "Quickie", "language": "zh-hant", "abstract": "\u5728\u5fae\u670d\u52d9\u7684\u67b6\u69cb\u4e0b\uff0c\u4f7f\u7528\u8005\u6216\u662f\u5404\u670d\u52d9\u9593\u7684\u6b0a\u63a7\u4e5f\u662f\u76f8\u7576\u91cd\u8981\u7684\u8b70\u984c\u3002\n\n\u570b\u6cf0\u4e16\u83ef\u9280\u884c\u7684\u6d77\u5916\u6d88\u91d1\u4e0a\u96f2\u6848\uff0c\u9078\u64c7\u4e86\u958b\u6e90\u7684 Keycloak (Identity and Access Management, IAM) \u4f5c\u70ba\u89e3\u6c7a\u65b9\u6848\u3002\n\n\u5167\u5bb9\u4e3b\u8981\u5c07\u8b1b\u8ff0 Keycloak Cluster \u7684\u904b\u4f5c\u539f\u7406\uff0c\u4ee5\u53ca\u5728 Kubernetes \u74b0\u5883\u4e0a\uff0c\u9700\u8981\u5982\u4f55\u8a2d\u5b9a\u624d\u53ef\u4ee5\u505a\u5230 Cluster \u67b6\u69cb\u3002", "description": null, "recording_license": "", "do_not_record": false, "persons": [{"code": "NCBHWD", "name": "\u5f35\u54c1\u7fd4 Pino", "avatar": "https://pretalx.com/media/avatars/NCBHWD_OO7RHvr.webp", "biography": "\u76ee\u524d\u5728\u570b\u6cf0\u91d1\u63a7\u64d4\u4efb\u52a9\u7406\u67b6\u69cb\u5e2b", "public_name": "\u5f35\u54c1\u7fd4 Pino", "guid": "e558b7f1-894a-535c-97dc-20b1d5413844", "url": "https://pretalx.com/jcconf-2024/speaker/NCBHWD/"}], "links": [], "feedback_url": "https://pretalx.com/jcconf-2024/talk/ELYBMM/feedback/", "origin_url": "https://pretalx.com/jcconf-2024/talk/ELYBMM/", "attachments": [{"title": "\u7c21\u5831", "url": "/media/jcconf-2024/submissions/ELYBMM/resources/%E5%A6%82%E4%BD%95%E5%9C%A8_Kubernetes_%E7%92%B0%E5%A2%83%E5%AF%A6%E7%8F%BE_Keycloak_Cluster_lHbasIk.pdf", "type": "related"}]}, {"guid": "42a3051e-f8c4-5930-8da2-b2be99d05d38", "code": "AXSX9J", "id": 51680, "logo": null, "date": "2024-09-27T14:10:00+08:00", "start": "14:10", "end": "2024-09-27T14:55:00+08:00", "duration": "00:45", "room": "402AB", "slug": "jcconf-2024-51680-ktor-3-0---ktor--3-0", "url": "https://pretalx.com/jcconf-2024/talk/AXSX9J/", "title": "Ktor 3.0 \u5165\u9580\uff1a\u7c21\u8ff0 Ktor \u7684\u67b6\u69cb\u53ca 3.0 \u7248\u672c\u7684\u4e3b\u8981\u7279\u9ede", "subtitle": "", "track": "402AB", "type": "Session", "language": "zh-hant", "abstract": "\u672c\u6f14\u8b1b\u5c07\u4ecb\u7d39 Ktor 3.0 \u9019\u500b\u7528 Kotlin \u8a9e\u8a00\u7de8\u5beb\u7684\u975e\u540c\u6b65 Web \u61c9\u7528\u6846\u67b6\u3002\n\n\u9996\u5148\uff0c\u6211\u5011\u5c07\u7c21\u8981\u56de\u9867 Ktor \u7684\u57fa\u672c\u67b6\u69cb\uff0c\u5305\u62ec\u8def\u7531\u3001\u8acb\u6c42\u8655\u7406\u548c\u63d2\u4ef6\u6a5f\u5236\u3002\u63a5\u8457\uff0c\u91cd\u9ede\u4ecb\u7d39 3.0 \u7248\u672c\u7684\u65b0\u7279\u6027\uff0c\u50cf\u662f\u66f4\u597d\u7684\u5354\u7a0b\u652f\u6301\u3001\u589e\u5f37\u7684\u5b89\u5168\u6027\u529f\u80fd\u3001\u6700\u4f73\u5316\u7684\u6027\u80fd\u8868\u73fe\u3001\u4ee5\u53ca\u65b0\u7684\u958b\u767c\u8005\u5de5\u5177\u3002\n\n\u53e6\u5916\uff0c\u9084\u6703\u901a\u904e\u5be6\u969b\u5c55\u793a\u5982\u4f55\u5feb\u901f\u5efa\u7acb\u4e00\u500b\u7c21\u55ae\u7684 Web \u61c9\u7528\uff0c\u5e6b\u52a9\u807d\u773e\u5feb\u901f\u4e0a\u624b Ktor 3.0 \u6846\u67b6\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": "\u5f8c\u7aef\u5de5\u7a0b\u8b1b\u8005\u53ca\u9867\u554f\uff0c\u751f\u6027\u61f6\u60f0\u5065\u5fd8\uff0c\u6240\u4ee5\u559c\u6b61\u7814\u7a76\u5404\u7a2e\u53ef\u4ee5\u52a0\u901f\u958b\u767c\u7684\u5de5\u5177\u3002\n\n\u76ee\u524d\u7a7f\u68ad\u5728\u5404\u5927\u6d3b\u52d5\u88e1\uff0c\u5206\u4eab\u9019\u4e9b\u53ef\u4ee5\u8b93\u958b\u767c\u66f4\u52a0\u5feb\u901f\u7684\u5de5\u5177\u3002", "public_name": "Recca Chao", "guid": "5ba70ca6-0568-5ba4-a03b-9b60c23d3281", "url": "https://pretalx.com/jcconf-2024/speaker/VKYCZB/"}], "links": [], "feedback_url": "https://pretalx.com/jcconf-2024/talk/AXSX9J/feedback/", "origin_url": "https://pretalx.com/jcconf-2024/talk/AXSX9J/", "attachments": []}, {"guid": "3f56ba36-8a0d-577e-b4da-dfa79d660214", "code": "K9MRK3", "id": 51240, "logo": null, "date": "2024-09-27T15:05:00+08:00", "start": "15:05", "end": "2024-09-27T15:50:00+08:00", "duration": "00:45", "room": "402AB", "slug": "jcconf-2024-51240-kotlin-wasm--kotlin", "url": "https://pretalx.com/jcconf-2024/talk/K9MRK3/", "title": "Kotlin/Wasm\uff1a\u70ba Kotlin \u591a\u5e73\u53f0\u5e36\u4f86\u66f4\u591a\u53ef\u80fd\u6027", "subtitle": "", "track": "402AB", "type": "Session", "language": "zh-hant", "abstract": "Kotlin \u8eab\u70ba\u652f\u63f4\u591a\u5e73\u53f0\u958b\u767c\u7684\u71b1\u9580\u8a9e\u8a00\uff0c\u9664\u4e86\u64c1\u6709\u826f\u597d\u7684\u751f\u614b\u7cfb\u7d71\u3001\u6210\u719f\u7684\u958b\u767c\u5de5\u5177\u5916\uff0c\u4e5f\u4e0d\u65b7\u63a2\u7d22\u652f\u63f4\u66f4\u591a\u5e73\u53f0\u7684\u53ef\u80fd\u6027\u3002Kotlin/Wasm \u5c08\u6848\u5c07 Kotlin \u8a9e\u8a00\u8207 WebAssembly \u6280\u8853\u4e92\u76f8\u7d50\u5408\uff0c\u8b93\u958b\u767c\u8005\u80fd\u5920\u958b\u767c\u5b89\u5168\u3001\u9ad8\u6548\u80fd\u3001\u65b9\u4fbf\u79fb\u690d\u7684 WebAssembly \u61c9\u7528\u7a0b\u5f0f\u3002\u96a8\u8457 WebAssembly \u7684\u672a\u4f86\u767c\u5c55\uff0cKotlin/Wasm \u9084\u80fd\u5728\u700f\u89bd\u5668\u4e4b\u5916\u57f7\u884c\uff0c\u61c9\u7528\u5728\u66f4\u591a\u5be6\u52d9\u60c5\u5883\u88e1\u3002\u672c\u5834\u5206\u4eab\u5c07\u4ecb\u7d39 Kotlin/Wasm \u5c08\u6848\u7684\u6700\u65b0\u767c\u5c55\uff0c\u5305\u62ec\u5982\u4f55\u5728\u73fe\u6709\u5c08\u6848\u5167\u52a0\u5165\u5c0d Kotlin/Wasm \u7684\u652f\u63f4\u3001\u76f8\u95dc\u958b\u767c\u5de5\u5177\u53ca\u4e26\u5c55\u793a\u4ee5 Kotlin/Wasm \u57f7\u884c Compose UI \u7a0b\u5f0f\u78bc\uff0c\u5c55\u73fe Kotlin \u591a\u5e73\u53f0\u958b\u767c\u7684\u9b45\u529b\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 Kotlin\u3001JetBrains IDE \u53ca\u76f8\u95dc\u6280\u8853\u3002\u5e73\u6642\u9189\u5fc3\u65bc\u6280\u8853\u7814\u7a76\uff0c\u5c08\u6ce8\u65bc Web\u3001\u5f8c\u7aef\u6280\u8853\u53ca\u80fd\u63d0\u5347\u751f\u7522\u529b\u7684\u6280\u5de7\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\u958b\u6e90\u793e\u7fa4\u904b\u4f5c\u3002", "public_name": "\u8303\u8056\u4f51", "guid": "b371ad3e-b8cd-5f3e-840d-7d234620bfe3", "url": "https://pretalx.com/jcconf-2024/speaker/JL9ME8/"}], "links": [], "feedback_url": "https://pretalx.com/jcconf-2024/talk/K9MRK3/feedback/", "origin_url": "https://pretalx.com/jcconf-2024/talk/K9MRK3/", "attachments": []}, {"guid": "19e2c283-26da-5a26-8c96-6ba20ff62118", "code": "B7DEXL", "id": 51690, "logo": null, "date": "2024-09-27T16:20:00+08:00", "start": "16:20", "end": "2024-09-27T17:05:00+08:00", "duration": "00:45", "room": "402AB", "slug": "jcconf-2024-51690-arrow-kt-typed-error", "url": "https://pretalx.com/jcconf-2024/talk/B7DEXL/", "title": "\u63d0\u5347\u932f\u8aa4\u8655\u7406\u7684\u512a\u96c5\u8207\u5b89\u5168\uff1aArrow kt Typed Error \u5be6\u8e10", "subtitle": "", "track": "402AB", "type": "Session", "language": "zh-hant", "abstract": "\u5728\u73fe\u4ee3\u8edf\u9ad4\u958b\u767c\u4e2d\uff0c\u512a\u96c5\u4e14\u5b89\u5168\u7684\u932f\u8aa4\u8655\u7406\u81f3\u95dc\u91cd\u8981\u3002Functional programming \u51fd\u5f0f\u5eab - Arrow kt \u70ba Kotlin \u63d0\u4f9b\u4e86\u5f37\u5927\u7684\u5de5\u5177\uff0c\u5176\u4e2d Typed Error \u529f\u80fd\u5c24\u70ba\u7a81\u51fa\u3002\u672c\u6f14\u8b1b\u5c07\u6df1\u5165\u63a2\u8a0e Arrow kt \u7684 Typed Error\uff0c\u5c55\u793a\u5176\u5982\u4f55\u6539\u9032\u50b3\u7d71\u7684\u932f\u8aa4\u8655\u7406\u65b9\u5f0f\u3002\u6211\u5011\u5c07\u901a\u904e\u4e00\u500b\u5be6\u969b\u6848\u4f8b\uff0c\u5c0d\u6bd4\u4f7f\u7528 Arrow kt \u524d\u5f8c\u7684\u5dee\u7570\uff0c\u5c55\u793a\u5982\u4f55\u63d0\u5347\u4ee3\u78bc\u7684\u53ef\u8b80\u6027\u8207\u53ef\u7dad\u8b77\u6027\u3002\u53c3\u8207\u8005\u5c07\u5b78\u7fd2\u5230 Typed Error \u7684\u57fa\u672c\u7528\u6cd5\u3001\u6700\u4f73\u5be6\u8e10\u4ee5\u53ca\u5728\u9805\u76ee\u4e2d\u7684\u61c9\u7528\u6280\u5de7\u3002\u7121\u8ad6\u60a8\u662f Kotlin \u65b0\u624b\u9084\u662f\u7d93\u9a57\u8c50\u5bcc\u7684\u958b\u767c\u8005\uff0c\u672c\u6f14\u8b1b\u90fd\u5c07\u70ba\u60a8\u63d0\u4f9b\u5be6\u7528\u7684\u898b\u89e3\u548c\u6280\u8853\uff0c\u5e6b\u52a9\u60a8\u5728\u958b\u767c\u4e2d\u66f4\u9ad8\u6548\u5730\u8655\u7406\u932f\u8aa4\u3002", "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": "\u9577\u671f\u6df1\u8015\u65bc Android \u9818\u57df\uff0c\u540c\u6642\u4e5f\u70ba Android Taipei \u793e\u7fa4\u4e3b\u8981\u7d44\u7e54\u4eba\u4e4b\u4e00\uff0c\u4e5f\u6709\u4e0d\u5c11 conference \u6f14\u8b1b\u7d93\u9a57\u3002\u5e73\u5e38\u559c\u6b61\u5b78\u7fd2\u4ee5\u53ca\u7814\u7a76\u8edf\u9ad4\u5404\u7a2e\u77e5\u8b58\uff0c\u50cf\u662f Software architecture, Unit Testing, Functional Programming, Domain Driven Design \u7b49\u7b49\u3002\u6700\u8fd1\u525b\u6210\u70ba\u5169\u96bb\u8c93\u7684\u8c93\u5974\u3002", "public_name": "\u6d2a\u5f65\u5f6c", "guid": "bb8d6df3-c99e-5eeb-88cc-e5e892afa8a2", "url": "https://pretalx.com/jcconf-2024/speaker/G9QVPA/"}], "links": [], "feedback_url": "https://pretalx.com/jcconf-2024/talk/B7DEXL/feedback/", "origin_url": "https://pretalx.com/jcconf-2024/talk/B7DEXL/", "attachments": []}, {"guid": "76a1b91a-61ba-5722-9d4c-c88cd1855641", "code": "DUPZBJ", "id": 52264, "logo": null, "date": "2024-09-27T17:15:00+08:00", "start": "17:15", "end": "2024-09-27T18:00:00+08:00", "duration": "00:45", "room": "402AB", "slug": "jcconf-2024-52264-kotlin", "url": "https://pretalx.com/jcconf-2024/talk/DUPZBJ/", "title": "Kotlin \u505c\u770b\u807d(\u4e0d\u9304\u5f71)", "subtitle": "", "track": "402AB", "type": "Session", "language": "zh-hant", "abstract": "\u5b78\u7fd2\u4e00\u9580\u8a9e\u8a00\uff0c\u7576\u7136\u4e0d\u80fd\u53ea\u6709\u6703\u7528\u800c\u5df2\uff0c\u5c31\u50cf\u904e\u99ac\u8def\u9700\u8981\u505c\u3001\u770b\u3001\u807d\u540c\u6642\u767c\u63ee\u624d\u80fd\u5e6b\u52a9\u4f60\u9806\u5229\u7684\u5230\u9054\u76ee\u7684\u5730\uff0c\u5c31\u8b93\u6211\u5011\u4e00\u8d77\u4f86\u5b78\u7fd2 Kotlin \u600e\u9ebc\u7528\u4e4b\u5916\u7684\u4e00\u4e9b\u6709\u8da3\u7684\u5c0f\u77e5\u8b58\u5427\uff5e", "description": null, "recording_license": "", "do_not_record": false, "persons": [{"code": "HBSNXV", "name": "Jintin", "avatar": "https://pretalx.com/media/avatars/HBSNXV_pVmtyUK.webp", "biography": "Kotlin \u5168\u9762\u555f\u52d5\u7cfb\u5217\u6587\u7ae0\u4f5c\u8005\u3001Android GDE\uff0c\u64c1\u6709\u591a\u5e74 Java/Kotlin \u958b\u767c\u7d93\u9a57\uff0c\u8457\u6709 Android \u5341\u5168\u5927\u88dc\u4e00\u66f8\u3002", "public_name": "Jintin", "guid": "d1b0a116-2419-5ee6-a324-2363231e57fa", "url": "https://pretalx.com/jcconf-2024/speaker/HBSNXV/"}], "links": [], "feedback_url": "https://pretalx.com/jcconf-2024/talk/DUPZBJ/feedback/", "origin_url": "https://pretalx.com/jcconf-2024/talk/DUPZBJ/", "attachments": []}], "402CD": [{"guid": "9a9d5050-a872-5408-9421-d0de970c078e", "code": "NWWRG7", "id": 52148, "logo": null, "date": "2024-09-27T10:40:00+08:00", "start": "10:40", "end": "2024-09-27T11:25:00+08:00", "duration": "00:45", "room": "402CD", "slug": "jcconf-2024-52148-sso", "url": "https://pretalx.com/jcconf-2024/talk/NWWRG7/", "title": "\u5982\u4f55\u4e0d\u8981\u90a3\u9ebc\u72fc\u72fd\u7684\u4e32\u63a5\u5404\u7a2e\u7532\u65b9\u7684SSO", "subtitle": "", "track": "402CD", "type": "Session", "language": "zh-hant", "abstract": "\u96a8\u8457\u8cc7\u5b89\u610f\u8b58\u7684\u63d0\u5347\uff0c\u5927\u90e8\u5206\u5177\u898f\u6a21\u7684\u7532\u65b9\u516c\u53f8\u958b\u59cb\u6709\u66f4\u6210\u719f\u7684\u8cc7\u5b89\u89e3\u6c7a\u65b9\u6848\u4ee5\u53ca\u8cc7\u5b89\u63a7\u7ba1\u8981\u6c42\n\u672c\u8b70\u984c\u63a2\u8a0e\u5728\u73fe\u4eca\u524d\u5f8c\u7aef\u5206\u96e2\u67b6\u69cb\u4e0b\uff0c\u8a8d\u8b49\u8207\u6388\u6b0a\u6d41\u7a0b\u7684\u63a7\u7ba1\u5982\u4f55\u8207\u7532\u65b9\u7684\u6d41\u7a0b\u4e32\u63a5\n\u4e3b\u8981\u6703\u8457\u91cd\u5728\u5404\u7a2e\u985e\u5916\u90e8SSO\u6a5f\u5236\u7684\u4e32\u806f, \u5305\u62ec LDAP, SAML, OIDC(OAuth2)\n\u524d\u7aef(\u5982\u679c\u6709demo\u7684\u8a71)\u6703\u4ee5Vue3\u70ba\u4e3b\n\u5f8c\u7aef\u4ee5SpringBoot3+Java23\u70ba\u4e3b", "description": null, "recording_license": "", "do_not_record": false, "persons": [{"code": "USMKKB", "name": "Rhys", "avatar": "https://pretalx.com/media/avatars/USMKKB_lPccReH.webp", "biography": "\u5728\u677e\u51cc\u79d1\u6280\u6253\u6efe\u4e8610\u5e74\u7684RD\n\u7d93\u6b77\u5f9eJDK7\u73a9\u5230JDK21\u3001\u5f9eSpringBoot1\u73a9\u5230SpringBoot3\u3001\u5f9eTomcat\u73a9\u5230K8S\u3001\u53ef\u5beb\u524d\u7aef\u53ef\u5beb\u5f8c\u7aef\n\u6709\u6642\u5019\u662fPG\u3001\u6709\u6642\u5019\u662fRD\u3001\u6709\u6642\u5019\u662fSA\u3001\u6709\u6642\u5019\u662fBA\u3001\u5076\u723e\u6703\u662fPM\u3001\u516c\u53f8\u9084\u639b\u4e86\u500bCTO\u8b93\u6211\u8ddf\u89aa\u670b\u597d\u53cb\u70ab\u8000\n\u6709\u7a0b\u5f0f\u5beb\u7a0b\u5f0f\u3001\u6709\u6587\u4ef6\u5beb\u6587\u4ef6\u3001\u6709\u706b\u6551\u706b\u3001\u6c92\u4e8b\u7684\u6642\u5019\u5275\u9020\u4e8b\u60c5\u4f86\u7d66\u5225\u4eba\u505a\n\u78bc\u8fb2\u5982\u6b64\uff0c\u592b\u5fa9\u4f55\u6c42", "public_name": "Rhys", "guid": "99876fdd-926d-56a4-8352-fd958b8ffa3b", "url": "https://pretalx.com/jcconf-2024/speaker/USMKKB/"}], "links": [], "feedback_url": "https://pretalx.com/jcconf-2024/talk/NWWRG7/feedback/", "origin_url": "https://pretalx.com/jcconf-2024/talk/NWWRG7/", "attachments": [{"title": "slide", "url": "/media/jcconf-2024/submissions/NWWRG7/resources/JCC24_slide_Rhys_NrNik4w.pptx", "type": "related"}]}, {"guid": "30366f63-bb38-5a86-9d36-1ef59b9618d0", "code": "LCUDBL", "id": 52405, "logo": null, "date": "2024-09-27T11:40:00+08:00", "start": "11:40", "end": "2024-09-27T12:25:00+08:00", "duration": "00:45", "room": "402CD", "slug": "jcconf-2024-52405-functional-programming-io-demystified-understanding-partial-application-monads-and-effects", "url": "https://pretalx.com/jcconf-2024/talk/LCUDBL/", "title": "Functional Programming IO Demystified: Understanding Partial Application, Monads, and Effects(\u82f1\u6587)", "subtitle": "", "track": "402CD", "type": "Session", "language": "zh-hant", "abstract": "In the world of functional programming, handling Input/Output (IO) is one of the most critical tasks. Pure functions and immutable data are all well and nice, but what should we do when we need to read from a database, send data over the network, or access local files?\n\nIn this talk, \"Functional Programming IO Demystified: Understanding Partial Application, Monads, and Effects,\" we will explore these concepts using practical examples and live coding in Kotlin. Each strategy has its pros and cons, and I will illustrate them with examples from my experience working on large back-end code bases in functional Kotlin.\n\nKey takeaways from this talk include:\n\n    A better grasp of how to design a functional programming solution for a backend.\n    Understanding advanced functional programming concepts, including the differences between the monadic approach and the direct-style effects approach.\n\nPlease join if you are interested or just curious about handling IO in functional programming and you will gain the knowledge to write clean, maintainable code in Kotlin as a bonus!", "description": null, "recording_license": "", "do_not_record": false, "persons": [{"code": "TDD8KH", "name": "Uberto Barbini", "avatar": "https://pretalx.com/media/avatars/TDD8KH_oZcc24J.webp", "biography": "Uberto is a passionate programmer and Kotlin GDE with more than 20 years of experience designing and building successful software products in many industries.\n\nHe is very passionate and opinionated about how to deliver value to the business not only once but at a regular pace.\n\nHe is particularly interested in Functional Programming and Distributed Computing since they are both critical to modern software challenges.\n\nWhen not coding, Uberto loves public speaking, writing and teaching programming. He published a book in 2023 about a pragmatic approach to FP (and DDD) in Kotlin (https://pragprog.com/titles/uboop/from-objects-to-functions/).\n\nYou can read his blog here: https://medium.com/@ramtop", "public_name": "Uberto Barbini", "guid": "6c7f4c5b-16e2-55d1-8a39-c26c652cb949", "url": "https://pretalx.com/jcconf-2024/speaker/TDD8KH/"}], "links": [], "feedback_url": "https://pretalx.com/jcconf-2024/talk/LCUDBL/feedback/", "origin_url": "https://pretalx.com/jcconf-2024/talk/LCUDBL/", "attachments": []}, {"guid": "7ec2c8d0-2b1b-5e13-b36a-0e1a311f7ace", "code": "KUJP9T", "id": 54536, "logo": null, "date": "2024-09-27T13:25:00+08:00", "start": "13:25", "end": "2024-09-27T13:40:00+08:00", "duration": "00:15", "room": "402CD", "slug": "jcconf-2024-54536-feature-toggleopenfeature", "url": "https://pretalx.com/jcconf-2024/talk/KUJP9T/", "title": "\u638c\u63e1Feature Toggle\u8207OpenFeature\u898f\u7bc4\uff1a\u63d0\u5347\u958b\u767c\u6548\u7387\u8207\u964d\u4f4e\u98a8\u96aa", "subtitle": "", "track": "402CD", "type": "Quickie", "language": "zh-hant", "abstract": "\u4e86\u89e3\u5982\u4f55\u61c9\u7528LINE\u958b\u6e90\u7684\u7b26\u5408OpenFeature\u898f\u7bc4\u7684Toggle Client API SDK\u2014\u2014Flagship4j\uff0c\u662f\u5982\u4f55\u901a\u904eFeature Toggle\u63d0\u5347\u61c9\u7528\u7a0b\u5f0f\u958b\u767c\u6548\u7387\u8207\u4f48\u7f72\u5f48\u6027\uff0c\u4e26\u964d\u4f4e\u4e0a\u7dda\u98a8\u96aa\u3002", "description": null, "recording_license": "", "do_not_record": false, "persons": [{"code": "Z8DZQP", "name": "Noah Hsu", "avatar": "https://pretalx.com/media/avatars/Z8DZQP_3l2vJOd.webp", "biography": "Java ServerSide Engr\ud83d\ude80, Focusing on Spring, Toggle system, Kafka, Event Sourcing, and CI/CD\n\n\u76ee\u524d\u4efb\u8077\u65bc LINE Taiwan\uff0c\u5c08\u7cbe\u65bc\u904b\u7528 Java\u3001Spring Boot \u53ca Kubernetesr\u958b\u767c\u5efa\u7f6e\u91d1\u878d\u53ca\u96fb\u5546\u76f8\u95dc\u7cfb\u7d71\u3002\u540c\u6642\u6295\u8eab\u65bc pipeline \u6539\u9032\u8a08\u756b\uff0c\u904b\u7528 Feature Toggle\u3001Mock Server \u53ca\u81ea\u52d5\u5316\u6e2c\u8a66\u7b49\u5de5\u5177\uff0c\u81f4\u529b\u65bc\u512a\u5316 CI/CD \u6d41\u7a0b\uff0c\u5be6\u73fe\u66f4\u52a0\u9748\u6d3b\u7684\u6309\u9700\u6c42\u767c\u5e03\u6a5f\u5236\u3002\u4e5f\u5c0d\u5206\u4eab\u81ea\u5df1\u5728\u61c9\u7528\u7a0b\u5f0f\u8a2d\u8a08\u3001\u958b\u767c\u8207\u90e8\u7f72\u7684\u7d93\u9a57\u8207\u5fc3\u5f97\u5145\u6eff\u71b1\u60c5\u3002", "public_name": "Noah Hsu", "guid": "859d2360-be86-5956-9204-6ad2b1473868", "url": "https://pretalx.com/jcconf-2024/speaker/Z8DZQP/"}], "links": [], "feedback_url": "https://pretalx.com/jcconf-2024/talk/KUJP9T/feedback/", "origin_url": "https://pretalx.com/jcconf-2024/talk/KUJP9T/", "attachments": [{"title": "slides", "url": "/media/jcconf-2024/submissions/KUJP9T/resources/2024_JCCONF_Feature_Toggle_Noah_6hFDNrn.pdf", "type": "related"}]}, {"guid": "f32d2f18-f72f-50b1-9cdf-a8391cb3a5ec", "code": "QDP8LA", "id": 52224, "logo": null, "date": "2024-09-27T13:45:00+08:00", "start": "13:45", "end": "2024-09-27T14:00:00+08:00", "duration": "00:15", "room": "402CD", "slug": "jcconf-2024-52224-java", "url": "https://pretalx.com/jcconf-2024/talk/QDP8LA/", "title": "\u5feb\u901f\u61c9\u5c0dJava\u61c9\u7528\u7a0b\u5f0f\u4e2d\u7684\u5e38\u898b\u6f0f\u6d1e(\u4e0d\u9304\u5f71)", "subtitle": "", "track": "402CD", "type": "Quickie", "language": "zh-hant", "abstract": "Java\u7531\u65bc\u5176\u5ee3\u6cdb\u4f7f\u7528\u548c\u9748\u6d3b\u6027\uff0c\u6210\u70ba\u8a31\u591a\u4f01\u696d\u7684\u9996\u9078\u3002\u7136\u800c\uff0c\u9019\u4e5f\u4f7f\u5f97Java\u6210\u70ba\u60e1\u610f\u653b\u64ca\u7684\u76ee\u6a19\u3002\u70ba\u4e86\u6709\u6548\u4fdd\u8b77\u7cfb\u7d71\uff0c\u5feb\u901f\u4fee\u88dc\u6f0f\u6d1e\u81f3\u95dc\u91cd\u8981\u3002\u672c\u8b70\u7a0b\u6311\u4e86\u5e7e\u500b\u4e3b\u8981\u4e14\u5e38\u898b\u7684Java\u61c9\u7528\u7a0b\u5f0f\u6f0f\u6d1e\uff0c\u4e26\u63d0\u4f9b\u4e86\u76f8\u61c9\u7684\u61c9\u5c0d\u65b9\u6cd5(\u7d50\u5408spring boot)\u3002", "description": null, "recording_license": "", "do_not_record": false, "persons": [{"code": "HZUZS7", "name": "Sarah Chou", "avatar": null, "biography": "\u6052\u6cb3\u4e00\u6c99", "public_name": "Sarah Chou", "guid": "2862a6b3-5683-556a-8f48-44d98707da32", "url": "https://pretalx.com/jcconf-2024/speaker/HZUZS7/"}], "links": [], "feedback_url": "https://pretalx.com/jcconf-2024/talk/QDP8LA/feedback/", "origin_url": "https://pretalx.com/jcconf-2024/talk/QDP8LA/", "attachments": [{"title": "PPT", "url": "/media/jcconf-2024/submissions/QDP8LA/resources/%E5%BF%AB%E9%80%9F%E6%87%89%E5%B0%8DJava%E6%87%89%E7%94%A8%E7%A8%8B%E5%BC%8F%E4%B8%AD%E7%9A%84%E5%B8%B8%E8%A6%8B%E6%BC%8F%E6%B4%9E_SZtQMIY.pptx", "type": "related"}]}, {"guid": "7a5838e2-e4ba-54f8-b0a7-85a844c2d2f9", "code": "DKKT9P", "id": 50140, "logo": null, "date": "2024-09-27T14:10:00+08:00", "start": "14:10", "end": "2024-09-27T14:55:00+08:00", "duration": "00:45", "room": "402CD", "slug": "jcconf-2024-50140-quick-off-the-blocks-rapid-start-options-for-your-java-application", "url": "https://pretalx.com/jcconf-2024/talk/DKKT9P/", "title": "Quick off the blocks! - rapid start options for your Java application(\u82f1\u6587)", "subtitle": "", "track": "402CD", "type": "Session", "language": "zh-hant", "abstract": "As short-living applications such as event-driven applications like FaaS (function as a service) got popular, Java was not selected for building such applications due to its slow start-up time. However, situation has changed! Newly added features help Java applications start rapidly and run faster, and Java has been gradually selected in this area. In this session, we explore technologies that have been introduced before and will be introduced in the future and share real use cases and demos with you. You can learn Java can be an option for short-live applications' platform and change your recognition.", "description": null, "recording_license": "", "do_not_record": false, "persons": [{"code": "VT97MU", "name": "Akihiro Nishikawa", "avatar": "https://pretalx.com/media/avatars/VT97MU_A01JvWh.webp", "biography": "Working for Microsoft as a Cloud Solution Architect, based in Japan. Conference speaker at not only local conferences but also outside Japan. Expertise in application development with Java and application integration, including API management and EDI. Also, a board member of JJUG (Japan Java Users Group).", "public_name": "Akihiro Nishikawa", "guid": "ad1e8ef8-2dfb-5242-a96b-d331aa9f2136", "url": "https://pretalx.com/jcconf-2024/speaker/VT97MU/"}], "links": [], "feedback_url": "https://pretalx.com/jcconf-2024/talk/DKKT9P/feedback/", "origin_url": "https://pretalx.com/jcconf-2024/talk/DKKT9P/", "attachments": [{"title": "presentation", "url": "/media/jcconf-2024/submissions/DKKT9P/resources/202409-JCConf_ekUFD1Q.pdf", "type": "related"}]}, {"guid": "570bbb8a-afbc-5d17-b9dc-61335862f261", "code": "QXNTZP", "id": 50995, "logo": null, "date": "2024-09-27T15:05:00+08:00", "start": "15:05", "end": "2024-09-27T15:50:00+08:00", "duration": "00:45", "room": "402CD", "slug": "jcconf-2024-50995-on-in-database-analytics", "url": "https://pretalx.com/jcconf-2024/talk/QXNTZP/", "title": "On in-database analytics", "subtitle": "", "track": "402CD", "type": "Session", "language": "zh-hant", "abstract": "in-database analytics \u662f\u4e00\u7a2e\u8a2d\u8a08\u98a8\u683c\uff1a\u300c\u5b83\u5c07\u8cc7\u6599\u8655\u7406\u76f4\u63a5\u653e\u9032\u8cc7\u6599\u5eab\u88e1\u57f7\u884c\uff0c\u56e0\u800c\u53ef\u4ee5\u7701\u53bb\u8cc7\u6599\u5728\u8cc7\u6599\u5eab\u8207\u5f8c\u7aef\u7a0b\u5f0f\u4e4b\u9593\u7684\u4f86\u56de\u642c\u79fb\u3002\u300d\u7136\u800c\uff0c\u9019\u500b\u98a8\u683c\u7684\u7a0b\u5f0f\u8a2d\u8a08\u4e26\u4e0d\u5e38\u7528\u3002\u751a\u81f3\u6709\u6642\u5019\uff0c\u5de5\u7a0b\u5e2b\u60f3\u4f86\u60f3\u53bb\u5c31\u662f\u89ba\u5f97\u9019\u62db\u6700\u5408\u7528\u4e86\uff0c\u9084\u89ba\u5f97\u8981\u9019\u6a23\u5b50\u8a2d\u8a08\u6709\u9ede\u602a\u602a\u7684\uff0c\u597d\u50cf\u524d\u7121\u53e4\u4eba\u4e00\u6a23\u3002\n\n\u5728\u9019\u5834\u6f14\u8b1b\u6211\u5011\u6703\u4f86\u63a2\u8a0e\uff1a\n1. \u4ec0\u9ebc\u662f in-database analytics\uff1f\n2. \u5b83\u6709\u4ec0\u9ebc\u597d\u8655\u3002\n3. \u8a72\u600e\u9ebc\u61c9\u7528\u9019\u62db\uff0c\u53ef\u4ee5\u642d\u914d\u4ec0\u9ebc\u5de5\u5177\u3002\n4. \u5982\u679c\u4e0d\u60f3\u7528\u9019\u62db\u7684\u8a71\uff0c\u9084\u6709\u4ec0\u9ebc\u9078\u9805\u3002", "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\n\n\u73fe\u8077\uff1a\n- REPLWARE ( https://replware.dev ) CEO\n- \u53f0\u7063 Clojure \u793e\u7fa4 ( https://clojure.tw/ ) \u7dda\u4e0b\u6d3b\u52d5\u4e3b\u6301\u4eba\n- dbt taipei \u793e\u7fa4 ( https://medium.com/dbt-local-taiwan ) \u7dda\u4e0b\u6d3b\u52d5\u4e3b\u6301\u4eba\n\n\u8457\u4f5c\uff1a\n- \u5f9e\u932f\u8aa4\u5230\u5275\u65b0 ( https://leanpub.com/errors_to_innovation/ )", "public_name": "Laurence Chen", "guid": "0068a84c-6b26-5407-bd93-3cadfed80acf", "url": "https://pretalx.com/jcconf-2024/speaker/DX3GH7/"}], "links": [], "feedback_url": "https://pretalx.com/jcconf-2024/talk/QXNTZP/feedback/", "origin_url": "https://pretalx.com/jcconf-2024/talk/QXNTZP/", "attachments": [{"title": "\u8b70\u7a0b\u6295\u5f71\u7247", "url": "/media/jcconf-2024/submissions/QXNTZP/resources/On_in-database_analytics_Sk5d34W.pdf", "type": "related"}]}, {"guid": "94cd5d1f-5e9a-547b-9169-d396762ca92c", "code": "8NH7FK", "id": 52279, "logo": null, "date": "2024-09-27T16:20:00+08:00", "start": "16:20", "end": "2024-09-27T17:05:00+08:00", "duration": "00:45", "room": "402CD", "slug": "jcconf-2024-52279-introduction-to-java-performance-tuning", "url": "https://pretalx.com/jcconf-2024/talk/8NH7FK/", "title": "Introduction to Java Performance Tuning(\u82f1\u6587)", "subtitle": "", "track": "402CD", "type": "Session", "language": "zh-hant", "abstract": "Performance Tuning is one of the important aspect for Java software developer as a part of a successful deployment. When we measure the performance of a Java application, what exactly are we measuring? What are the commonly used tools you need to use, and what are the pitfall of using these tools? In this talk we will introduce you to the world of performance tuning and I will show you a live example of using these tools", "description": null, "recording_license": "", "do_not_record": false, "persons": [{"code": "JFFKQX", "name": "Sunny Chan", "avatar": "https://pretalx.com/media/avatars/JFFKQX_5ZAAJE5.webp", "biography": "Sunny Chan has been a Java developer since 2001. He has previously working in various roles involving developing and providing consultation on Java and the JVM, mainly in the financial sector. Currently he is working in Hong Kong as a senior Java developer in a cryptocurrency exchange.", "public_name": "Sunny Chan", "guid": "1abc4228-638c-52da-9ea2-178b75929192", "url": "https://pretalx.com/jcconf-2024/speaker/JFFKQX/"}], "links": [{"title": "Draft Slides", "url": "https://docs.google.com/presentation/d/1vCdO2-Wrg1gdG4FOBqm5Lyb6FoTWM6wNNFSU1bDw60c/edit?usp=sharing", "type": "related"}], "feedback_url": "https://pretalx.com/jcconf-2024/talk/8NH7FK/feedback/", "origin_url": "https://pretalx.com/jcconf-2024/talk/8NH7FK/", "attachments": []}, {"guid": "274c1b80-19a2-54d1-821e-84389ce354a5", "code": "HGR9KH", "id": 52217, "logo": null, "date": "2024-09-27T17:15:00+08:00", "start": "17:15", "end": "2024-09-27T18:00:00+08:00", "duration": "00:45", "room": "402CD", "slug": "jcconf-2024-52217-generic-fastutil-and-project-valhalla", "url": "https://pretalx.com/jcconf-2024/talk/HGR9KH/", "title": "Generic, Fastutil, And Project Valhalla", "subtitle": "", "track": "402CD", "type": "Session", "language": "zh-hant", "abstract": "\u6cdb\u578b\u5728 JVM \u751f\u614b\u7cfb\u4e2d\u626e\u6f14\u8457\u91cd\u78c5\u7d1a\u7684\u7279\u6027\uff0c\u4f46\u4e5f\u7531\u65bc\u5176\u5be6\u4f5c\u4e0a\u7684\u898f\u7bc4\u8a2d\u8a08\u884d\u751f\u51fa\u4e86\u5404\u5f0f Java \u7368\u6709\u7684\u300c\u8a2d\u8a08\u6a21\u5f0f\u300d\uff0c\u66f4\u9032\u4e00\u6b65\u5730\u5f71\u97ff\u4e86 JVM \u751f\u614b\u7cfb\u4e2d\u5404\u5f0f\u8a9e\u8a00\u7684\u5f8c\u7e8c\u8a9e\u8a00\u8a2d\u8a08\uff01\n\n\u672c\u6b21\u5206\u4eab\u4e2d\uff0c\u5c07\u6703\u4e00\u6b65\u6b65\u5e36\u9818\u807d\u773e\u5f9e\u6700\u57fa\u672c\u7684 Java Generic\uff0c\u5230 JVM Generic \u7684\u898f\u7bc4\uff0c\u4e26\u4ee5 Fastutil \u6240\u89e3\u6c7a\u7684\u56f0\u5883\u7684\u8a2d\u8a08\u70ba\u4f8b\uff0c\u6700\u5f8c\u5e36\u5165 Project Valhalla \u6240\u9810\u8a08\u5be6\u73fe\u7684\u9858\u666f\u3002", "description": null, "recording_license": "", "do_not_record": false, "persons": [{"code": "PU8Y7G", "name": "ChAoS UnItY (Kyle Lin)", "avatar": "https://pretalx.com/media/avatars/PU8Y7G_uzciCPd.webp", "biography": "\u76ee\u524d\u5c31\u8b80\u9022\u7532\u5927\u5b78\u8cc7\u5de5\u7cfb\uff0c\u76ee\u524d\u64d4\u4efbTWKUG\u5fd7\u5de5\uff0c\n\u4e3b\u8981\u7814\u7a76\u7de8\u8b6f\u5668\u9818\u57df\u3002\n\n\u9592\u6687\u6642\u9593\u559c\u6b61\u7814\u7a76 Functional Programming \u7b49\u51b7\u9580\u6280\u8853\u3002", "public_name": "ChAoS UnItY (Kyle Lin)", "guid": "7ab7cf5c-4eb2-5fd7-bb0d-f302c5a5a79f", "url": "https://pretalx.com/jcconf-2024/speaker/PU8Y7G/"}], "links": [], "feedback_url": "https://pretalx.com/jcconf-2024/talk/HGR9KH/feedback/", "origin_url": "https://pretalx.com/jcconf-2024/talk/HGR9KH/", "attachments": []}], "203": [{"guid": "b78cbc8a-f0b8-5218-ba85-11b1dc9c66e4", "code": "7FJTC7", "id": 52259, "logo": null, "date": "2024-09-27T13:25:00+08:00", "start": "13:25", "end": "2024-09-27T13:40:00+08:00", "duration": "00:15", "room": "203", "slug": "jcconf-2024-52259-java", "url": "https://pretalx.com/jcconf-2024/talk/7FJTC7/", "title": "Java \u5c08\u6848\u8d77\u624b\u5f0f (\u6280\u8853\u9078\u578b\u3001\u57fa\u790e\u5171\u7528\u7a0b\u5f0f\u8207\u5143\u4ef6\u3001\u958b\u767c\u898f\u7bc4)", "subtitle": "", "track": "203", "type": "Quickie", "language": "zh-hant", "abstract": "\u5206\u4eab\u5982\u4f55\u958b\u59cb\u4e00\u500b Java \u5c08\u6848\u7684\u7d93\u9a57\uff0c\u5305\u62ec\u6280\u8853\u9078\u64c7\u3001\u5171\u7528\u7a0b\u5f0f\u8207\u5143\u4ef6\u4ee5\u53ca\u958b\u767c\u898f\u7bc4\u3002\u5e0c\u671b\u9019\u4e9b\u5167\u5bb9\u80fd\u5e6b\u52a9\u5927\u5bb6\u66f4\u9806\u5229\u5730\u9032\u884c\u5c08\u6848\u958b\u767c\u3002", "description": null, "recording_license": "", "do_not_record": false, "persons": [{"code": "8CZKP3", "name": "Kyle Chen", "avatar": null, "biography": ".", "public_name": "Kyle Chen", "guid": "fa92cb5e-712e-53e8-bdfb-dcff6bca01f9", "url": "https://pretalx.com/jcconf-2024/speaker/8CZKP3/"}], "links": [], "feedback_url": "https://pretalx.com/jcconf-2024/talk/7FJTC7/feedback/", "origin_url": "https://pretalx.com/jcconf-2024/talk/7FJTC7/", "attachments": [{"title": "JCConf 2024 Java \u5c08\u6848\u8d77\u624b\u5f0f", "url": "/media/jcconf-2024/submissions/7FJTC7/resources/JCConf_2024_Java_%E5%B0%88%E6%A1%88%E8%B5%B7%E6%89%8B%E5%BC%8F_GcceRmg.pptx", "type": "related"}]}, {"guid": "2b9d0871-fd24-57fe-b163-0cfba5c5b580", "code": "7NUAFY", "id": 49954, "logo": null, "date": "2024-09-27T13:45:00+08:00", "start": "13:45", "end": "2024-09-27T14:00:00+08:00", "duration": "00:15", "room": "203", "slug": "jcconf-2024-49954-sonarqube-docker-sonaranalyzercombo", "url": "https://pretalx.com/jcconf-2024/talk/7NUAFY/", "title": "\u5f9e\u91d1\u878d\u696d\u8f49\u751f\u5230\u4e59\u65b9\u8edf\u9ad4\u516c\u53f8\uff0c\u958b\u59cb\u4f7f\u7528SonarQube\u3001Docker\u3001SonarAnalyzer\u4e4bCombo\u9023\u64ca", "subtitle": "", "track": "203", "type": "Quickie", "language": "zh-hant", "abstract": "\u8457\u91cd\u5728 SonarQube\uff0c\u5206\u4eab\u521d\u5b78 SonarQube \u7684\u61c9\u7528\uff0c\u5982\u4f55\u4f7f\u7528 SonarQube CNES Report Plugin \u532f\u51fa\u6e90\u78bc\u6383\u63cf\u4e4b\u5831\u544a\uff0c\u4e26\u7d50\u5408 Intellij IDEA SonarAnalyzer plugins \u5728 IDEA \u5167\u90e8\u672c\u5730\u4f7f\u7528 SonarQube \u540c\u6642\u9032\u884c\u6e90\u78bc\u6383\u63cf\u8207\u9060\u7aef\u540c\u6b65\u7522\u88fd\u5831\u544a", "description": null, "recording_license": "", "do_not_record": false, "persons": [{"code": "PNJCJ3", "name": "\u4e0d\u60f3\u52a0\u73ed\u7684\u5de5\u7a0b\u5e2b Justin", "avatar": "https://pretalx.com/media/avatars/PNJCJ3_3uRpj2i.webp", "biography": "\u54c8\u56c9\uff0c\u5927\u5bb6\u597d\uff5e\n\u6211\u662f Justin \u66fe\u4efb\u7389\u5c71\u91d1\u63a7\u7684\u61c9\u7528\u7cfb\u7d71\u5de5\u7a0b\u5e2b\uff0c\u76ee\u524d\u73fe\u4efbAI \u5c08\u6848\u7684\u5f8c\u7aef\u5de5\u7a0b\u5e2b\u3002\n\u64c1\u6709\u4e00\u9846\u71b1\u611b\u6280\u8853\u7684\u5fc3\u3001\u4e0d\u6015\u88abBugs\u64ca\u5012\u7684\u5805\u6301\uff0c\u4ee5\u53ca\u82f1\u96c4\u4e0d\u6015\u51fa\u8eab\u4f4e\u7684Guts\n\u5e0c\u671b\u5728\u672a\u4f86\uff0c\u80fd\u5728\u8edf\u9ad4\u9019\u689d\u8def\u4e0a\uff0c\u6210\u9577\u8301\u58ef\u5230\u958b\u59cb\u5e6b\u52a9\u8207\u6211\u904e\u53bb\u76f8\u50cf\u7684\u4eba\u3001\u4e8b\u3001\u7269", "public_name": "\u4e0d\u60f3\u52a0\u73ed\u7684\u5de5\u7a0b\u5e2b Justin", "guid": "18abf8f3-2f61-55b2-8422-3b17d9282f6d", "url": "https://pretalx.com/jcconf-2024/speaker/PNJCJ3/"}], "links": [], "feedback_url": "https://pretalx.com/jcconf-2024/talk/7NUAFY/feedback/", "origin_url": "https://pretalx.com/jcconf-2024/talk/7NUAFY/", "attachments": []}, {"guid": "fe8f923d-9f4c-5bbb-8023-fbe8e613a107", "code": "DSYU8W", "id": 50431, "logo": null, "date": "2024-09-27T14:10:00+08:00", "start": "14:10", "end": "2024-09-27T14:55:00+08:00", "duration": "00:45", "room": "203", "slug": "jcconf-2024-50431-monitor-mysql-with-opentelemetry", "url": "https://pretalx.com/jcconf-2024/talk/DSYU8W/", "title": "Monitor MySQL with OpenTelemetry", "subtitle": "", "track": "203", "type": "Session", "language": "zh-hant", "abstract": "OpenTelemtry\u662f\u7531Cloud Native Computing Foundation (CNCF)\u6240\u5b9a\u7fa9\u7684\u65b0\u7684\u9060\u7a0b\u76e3\u770b\u6a19\u6e96,\u900f\u904e\u5b83,\u652f\u6301OpenTelemtry\u7684\u7cfb\u7d71\u53ef\u4ee5\u76e3\u770b\u5230\u8de8\u7cfb\u7d71\u9593\u7684\u4e92\u52d5\u72c0\u6cc1,MySQL 8.1\u7248\u4ee5\u5f8c\u958b\u59cb\u652f\u63f4OpenTelemetry,\u9019\u8b93\u6211\u5011\u4e0d\u50c5\u80fd\u770b\u5230MySQL\u672c\u8eab\u7684\u72c0\u6cc1,\u4e5f\u80fd\u4e86\u89e3\u4f7f\u7528MySQL\u7684\u61c9\u7528\u7cfb\u7d71\u548cMySQL\u7684\u4e92\u52d5.\u9019\u500b\u6f14\u8b1b\u5c07\u70ba\u5404\u4f4d\u8aaa\u660e\u548c\u6f14\u793a\u5982\u4f55\u8a2d\u5b9aMySQL\u7684OpenTelemtry\u63d2\u4ef6,\u652f\u63f4OpenTelemtry\u7684\u76e3\u770b\u7cfb\u7d71\u53c8\u5982\u4f55\u80fd\u4f7f\u7528\u9019\u500b\u63d2\u4ef6\u770b\u5230", "description": null, "recording_license": "", "do_not_record": false, "persons": [{"code": "7WMKLH", "name": "\u675c\u4fee\u6587", "avatar": "https://pretalx.com/media/avatars/7WMKLH_0sfLZPo.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\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\u4efb\u8077\u7532\u9aa8\u6587\u4e4b\u524d\uff0c\u66fe\u4efb\u5347\u967d\u96fb\u8166\u8edf\u9ad4\u4e8b\u696d\u90e8\u67b6\u69cb\u5e2b\uff0c\u7532\u9aa8\u6587\u5927\u5b78\u8b1b\u5e2b\u548c\u57f9\u8a13\u90e8\u7d93\u7406\u7b49\u5de5\u4f5c", "public_name": "\u675c\u4fee\u6587", "guid": "97db11fb-b380-5d60-a303-a41e442dfcdb", "url": "https://pretalx.com/jcconf-2024/speaker/7WMKLH/"}], "links": [], "feedback_url": "https://pretalx.com/jcconf-2024/talk/DSYU8W/feedback/", "origin_url": "https://pretalx.com/jcconf-2024/talk/DSYU8W/", "attachments": []}, {"guid": "fc4685d8-5611-5a3d-86bd-555898e876b3", "code": "7T7YT7", "id": 51450, "logo": null, "date": "2024-09-27T15:05:00+08:00", "start": "15:05", "end": "2024-09-27T15:50:00+08:00", "duration": "00:45", "room": "203", "slug": "jcconf-2024-51450-simplify-multi-step-process-development-with-workflow-engines", "url": "https://pretalx.com/jcconf-2024/talk/7T7YT7/", "title": "\u4f7f\u7528\u5de5\u4f5c\u6d41\u5f15\u64ce\u7c21\u5316\u591a\u6b65\u9a5f\u6d41\u7a0b\u958b\u767c Simplify Multi-step Process Development with Workflow Engines", "subtitle": "", "track": "203", "type": "Session", "language": "zh-hant", "abstract": "\u5728\u5b89\u6392\u4e00\u7cfb\u5217\u6b65\u9a5f\u3001\u8de8\u7cfb\u7d71\u6574\u5408\u4efb\u52d9\u7684\u6d41\u7a0b\u7576\u4e2d\uff0c\u5982\u679c\u5b8c\u5168\u900f\u904e\u624b\u52d5\u64b0\u5beb\u7a0b\u5f0f\u53ca\u8a2d\u5b9a\u72c0\u614b\u79fb\u8f49\uff0c\u6703\u56e0\u70ba\u8907\u96dc\u7684\u6d41\u7a0b\u53ca\u5176\u76f8\u61c9\u6240\u9700\u7684\u984d\u5916\u8655\u7406\u6a5f\u5236\uff0c\u5c0e\u81f4\u958b\u767c\u5de5\u4f5c\u7684\u8ca0\u64d4\u589e\u52a0\u751a\u81f3\u5bb9\u6613\u51fa\u932f\u3002\n\n\u672c\u6b21\u5167\u5bb9\u5c07\u4ecb\u7d39\u5982\u4f55\u5229\u7528\u5de5\u4f5c\u6d41\u5f15\u64ce\u4f86\u7c21\u5316\u591a\u6b65\u9a5f\u6d41\u7a0b\u7684\u958b\u767c\uff0c\u91cd\u9ede\u8aaa\u660e\u5de5\u4f5c\u6d41\u5f15\u64ce\u7684\u57fa\u672c\u6982\u5ff5\u3001\u5e36\u4f86\u7684\u6548\u76ca\u53ca\u5176\u958b\u767c\u65b9\u5f0f\u7684\u8f49\u8b8a\uff0c\u5e6b\u52a9\u958b\u767c\u8005\u8a8d\u8b58\u9019\u500b\u6846\u67b6\u7d1a\u5143\u4ef6\uff0c\u9032\u800c\u6539\u5584\u958b\u767c\u53ca\u5f8c\u7e8c\u7684\u7dad\u904b\u5de5\u4f5c\u3002", "description": null, "recording_license": "", "do_not_record": false, "persons": [{"code": "KJD8WT", "name": "\u59dc\u653f\u5b8f Jiang", "avatar": "https://pretalx.com/media/avatars/KJD8WT_aUkVTZM.webp", "biography": "\u73fe\u8077\u5728\u6c38\u806f\u7269\u6d41\u958b\u767c\u64d4\u4efb DevOps\uff0c\n\u8208\u8da3\u662f\u524d\u7aef\u523b\u756b\u9762\uff0c\u70ba\u4e86\u641e\u61c2\u5b8c\u6574\u7684\u8edf\u9ad4\u958b\u767c\u800c\u8d70\u9032\u4e86\u5f8c\u7aef\uff0c\n\u76f4\u5230\u73fe\u4eca\u4eba\u76e4\u5728\u958b\u767c\u53ca\u7dad\u904b\u7576\u4e2d\u88ab\u5df4\u4f86\u5df4\u53bb\u3002", "public_name": "\u59dc\u653f\u5b8f Jiang", "guid": "afe2882f-87bc-538f-ad67-a05a325cf19e", "url": "https://pretalx.com/jcconf-2024/speaker/KJD8WT/"}], "links": [], "feedback_url": "https://pretalx.com/jcconf-2024/talk/7T7YT7/feedback/", "origin_url": "https://pretalx.com/jcconf-2024/talk/7T7YT7/", "attachments": [{"title": "\u7c21\u5831", "url": "/media/jcconf-2024/submissions/7T7YT7/resources/%E4%BD%BF%E7%94%A8%E5%B7%A5%E4%BD%9C%E6%B5%81%E5%BC%95%E6%93%8E%E7%B0%A1%E5%8C%96%E6%B5%81%E7%A8%8B%E9%96%8B%E7%99%BC_Simplify_Multi-step_Process_Devel_3AmPIhL.pdf", "type": "related"}]}, {"guid": "3dae0513-6c23-5ab4-a626-feb4ad387ee2", "code": "7DHSPF", "id": 51233, "logo": null, "date": "2024-09-27T16:20:00+08:00", "start": "16:20", "end": "2024-09-27T17:05:00+08:00", "duration": "00:45", "room": "203", "slug": "jcconf-2024-51233-direct-style-in-scala-conquering-concurrency-with-elegance-and-power", "url": "https://pretalx.com/jcconf-2024/talk/7DHSPF/", "title": "Direct Style in Scala: Conquering Concurrency with Elegance and Power", "subtitle": "", "track": "203", "type": "Session", "language": "zh-hant", "abstract": "The quest for simpler, more understandable concurrent programming has led languages like Kotlin, Python, C#, and TypeScript to embrace direct style constructs like coroutines and async/await. Scala is not far behind, and its upcoming direct style implementation promises to revolutionize how we tackle concurrency challenges.\n\nIn this talk, we'll dive into direct style programming in Scala 3, unlocking the potential of structured concurrency and harnessing the benefits of Project Loom in Java 21+. Discover how Scala's direct style goes beyond the capabilities of other languages, providing a seamless integration with functional programming paradigms and offering a compelling alternative to the love-hate relationship with monadic effects.\n\nJoin us to learn how to:\n\n* **Simplify concurrent code:** Write code that reads like synchronous logic, while effortlessly managing asynchronous operations.\n* **Leverage structured concurrency:**  Ensure well-defined task lifecycles and error handling for robust concurrent applications.\n* **Embrace a functional approach:**  Experience how direct style complements and enhances functional programming techniques in Scala.\n* **Unlock new possibilities:**  Explore how Scala's direct style opens doors for innovative solutions in concurrent and asynchronous programming.\n\nWhether you're a seasoned Scala developer or new to the language, this talk will equip you with the knowledge and tools to master direct style and conquer the complexities of concurrent programming with elegance and power.", "description": null, "recording_license": "", "do_not_record": false, "persons": [{"code": "8QHGCG", "name": "\u5f35\u744b\u4fee Walter Chang", "avatar": "https://pretalx.com/media/avatars/8QHGCG_RDB0mKH.webp", "biography": "\u5f35\u744b\u4fee (Walter Chang) is a long time Java/Scala developer. He specializes in architectures of the web, both in the browser and the cloud. In his spare time, he likes to explore new things and find out what makes them tick.", "public_name": "\u5f35\u744b\u4fee Walter Chang", "guid": "1e635b35-0561-56c2-9e1f-4c265c858ac3", "url": "https://pretalx.com/jcconf-2024/speaker/8QHGCG/"}], "links": [], "feedback_url": "https://pretalx.com/jcconf-2024/talk/7DHSPF/feedback/", "origin_url": "https://pretalx.com/jcconf-2024/talk/7DHSPF/", "attachments": []}, {"guid": "81e1b6e5-92cc-570d-9342-5ab2f8211d9e", "code": "FWWQHW", "id": 50399, "logo": null, "date": "2024-09-27T17:15:00+08:00", "start": "17:15", "end": "2024-09-27T18:00:00+08:00", "duration": "00:45", "room": "203", "slug": "jcconf-2024-50399-developers-build-your-career-now", "url": "https://pretalx.com/jcconf-2024/talk/FWWQHW/", "title": "Developers \u2014 Build your Career Now(\u82f1\u6587)", "subtitle": "", "track": "203", "type": "Session", "language": "zh-hant", "abstract": "The world has changed \u2014 everything is fast. You\u2019re busy updating your technical skills, but are you leveraging the most efficient learning techniques? Are you building your network in a systematic way. Are you contributing to communities?\n\nThere are massive benefits to contributing to Open Source projects, especially Java as one of the more innovative and long lasting software development communities in the world. But remember that although communities are fun and valuable they can also be fragile and change radically. They need continual nurturing so they can support opportunities for contributors.\n\nIn this session, we\u2019ll explore the skills necessary to learn new things deeply, contribute things of value to communities, and build our own innovative networks to leverage markets. The result is that we benefit, the community benefits, our friends benefit, and our employers benefit. These four levels represent reciprocal relationships that need careful consideration.\n\nWe'll talk about concepts from network science, neuroscience, education, and history, while also introducing practical simple tools like spaced repetition algorithms to help promote memory and learning. I\u2019ll share some career success stories of my own and also some of my catastrophic failures. I\u2019ve photographed thousands of developers and interviewed hundreds of them for videos, streams, and podcast, so we surely have many images to show and many lessons we can discuss to help us all thrive in this crazy fast world.", "description": null, "recording_license": "", "do_not_record": false, "persons": [{"code": "PJ3Z7E", "name": "Jim Grisanzio", "avatar": "https://pretalx.com/media/avatars/PJ3Z7E_fgy8eEQ.webp", "biography": "I\u2019ve managed projects in software, biotech, publishing, and construction. I\u2019ve navigated multiple economic and political systems, sparred with some hostile unions, survived a few near-death experiences, and overcame serious medical limitations. I\u2019m lucky to be alive and thankful to be walking.\n\nI ran my own excavating and real estate development business, and I was also a mechanic and a truck driver. After everything crashed I picked up the pieces, went back to school, and eventually became a publicist, an editor, and a writer. I\u2019ve worked with the global news media and local, state, and federal government officials; I\u2019ve interviewed hundreds of engineers, scientists, and clinicians; and I\u2019ve produced thousands of articles, photos, videos, and podcasts. In recent years I\u2019ve been building FOSS communities at Sun and Oracle, managing developer events globally, and delivering my own community sessions at conferences.\n\nMore background here: https://jimgrisanzio.wordpress.com/jim/", "public_name": "Jim Grisanzio", "guid": "66b591ef-363c-509f-99e4-fab0cd04621c", "url": "https://pretalx.com/jcconf-2024/speaker/PJ3Z7E/"}], "links": [], "feedback_url": "https://pretalx.com/jcconf-2024/talk/FWWQHW/feedback/", "origin_url": "https://pretalx.com/jcconf-2024/talk/FWWQHW/", "attachments": []}], "403": [{"guid": "585b75cd-0d1e-5723-a035-90a1df63787d", "code": "TFVXVT", "id": 51035, "logo": null, "date": "2024-09-27T14:00:00+08:00", "start": "14:00", "end": "2024-09-27T17:00:00+08:00", "duration": "03:00", "room": "403", "slug": "jcconf-2024-51035-spring-ai--ai", "url": "https://pretalx.com/jcconf-2024/talk/TFVXVT/", "title": "\u7528 Spring AI \u6253\u9020 AI \u61c9\u7528", "subtitle": "", "track": "403", "type": "Workshop", "language": "zh-hant", "abstract": "\u4f7f\u7528 Spring Boot + Spring AI \u7d50\u5408\u5404\u7a2e AI \u6a21\u578b\u5de5\u5177\uff0c\u5feb\u5ea6\u6253\u9020 AI \u61c9\u7528\n\n- Spring AI \u4ecb\u7d39\n- \u5efa\u7acb project\uff08\u4ee5\u4e0b\u90fd\u662f\u8b1b\u89e3+\u5be6\u4f5c\uff09\n- \u57fa\u672c Chat \u547c\u53eb\n- \u7522\u751f\u5716\u6a94\u5929\u6c23\u8c93\u8c93\u5716\n- Embedding\n- \u5411\u91cf\u8cc7\u6599\u5eab\n- \u6253\u9020\u81ea\u5df1\u7684\u77e5\u8b58\u6a5f\u5668\u4eba", "description": null, "recording_license": "", "do_not_record": false, "persons": [{"code": "9BFBEL", "name": "Jiayun Zhou", "avatar": null, "biography": ".", "public_name": "Jiayun Zhou", "guid": "4e5cbb7d-8f69-5c99-9e8f-6238869e04b7", "url": "https://pretalx.com/jcconf-2024/speaker/9BFBEL/"}], "links": [], "feedback_url": "https://pretalx.com/jcconf-2024/talk/TFVXVT/feedback/", "origin_url": "https://pretalx.com/jcconf-2024/talk/TFVXVT/", "attachments": []}]}}]}}}