# Repository Guidelines ## ÏîÄ¿½á¹¹ÓëÄ£¿é×éÖ¯ ²Ö¿âÓÉÁ½¸öÖ÷ÏîÄ¿×é³É£º - `WIDESEA_WMSServer/`£ºASP.NET Core ºó¶Ë£¨½â¾ö·½°¸£º`WIDESEA_WMSServer.sln`£©¡£ - `WIDESEA_WMSClient/`£ºVue 3 ǰ¶Ë£¨Vite + Yarn£©¡£ ºó¶Ë°´Ö°Ôð²ð·Ö£º`WIDESEA_WMSServer/`£¨API Æô¶¯ÏîÄ¿£©¡¢`WIDESEA_Core/`£¨»ù´¡ÉèÊ©/»ùÀàÄÜÁ¦£©¡¢`WIDESEA_Model/`£¨ÊµÌåÄ£ÐÍ£©¡¢`WIDESEA_DTO/`£¨Êý¾Ý´«Êä¶ÔÏ󣩡¢`WIDESEA_I*Service/`£¨·þÎñ½Ó¿Ú£©¡¢`WIDESEA_*Service/`£¨·þÎñʵÏÖ£©¡£Ç°¶ËÔ´ÂëλÓÚ `WIDESEA_WMSClient/src/`£¬µ¥Ôª²âÊÔλÓÚ `WIDESEA_WMSClient/tests/unit/`¡£ ## ¹¹½¨¡¢²âÊÔÓ뿪·¢ÃüÁî ºó¶Ë£¨ÔÚ `WIDESEA_WMSServer` Ŀ¼ִÐУ©£º - `dotnet restore WIDESEA_WMSServer.sln`£º»¹Ô­ NuGet ÒÀÀµ¡£ - `dotnet build WIDESEA_WMSServer.sln`£º¹¹½¨È«²¿ºó¶ËÏîÄ¿¡£ - `dotnet run --project WIDESEA_WMSServer/WIDESEA_WMSServer.csproj`£º±¾µØÆô¶¯ API¡£ ǰ¶Ë£¨ÔÚ `WIDESEA_WMSClient` Ŀ¼ִÐУ©£º - `npm install`£º°²×°ÒÀÀµ¡£ - `npm run serve`£ºÆô¶¯±¾µØ¿ª·¢·þÎñ£¨Vite£©¡£ - `npm run build`£º¹¹½¨Éú²ú×ÊÔ´¡£ - `npm run lint`£ºÖ´ÐÐ ESLint ¼ì²é¡£ ## ¿ª·¢Á÷³ÌÇ¿ÖÆ¹æ·¶ - ËùÓÐÈÎÎñ±ØÐëÔÚ `Code/WMS/.worktrees/` ¶ÀÁ¢ worktree Öпª·¢£¬²»Ö±½ÓÔÚÖ÷¹¤×÷Çø¸Ä¶¯¡£ - ·ÖÖ§ÃüÃûͳһ£º`feat/<Ä£¿é>-<Ö÷Ìâ>`¡¢`fix/<Ä£¿é>-<ÎÊÌâ>`¡¢`refactor/<Ä£¿é>-<Ö÷Ìâ>`¡¢`docs/<Ö÷Ìâ>`¡£ - ÿ´ÎÌύǰÖÁÉÙÖ´ÐÐÓë¸Ä¶¯Ïà¹ØµÄ×îСÑéÖ¤£¨Ç°¶Ë¸Ä¶¯ÅÜ `npm run lint`£»ºó¶Ë¸Ä¶¯ÅÜ `dotnet test` »ò×îС¿ÉÔËÐÐÑéÖ¤£©¡£ - ½ûÖ¹Ò»´ÎÌá½»»ìÈëÎÞ¹ØÖع¹¡¢¸ñʽ»¯ÔëÉù»ò´óÃæ»ýÎļþÒÆ¶¯¡£ ## ´úÂë·ç¸ñÓëÃüÃûÔ¼¶¨ ǰ¶ËʹÓà Vue Standard ESLint ¹æÔò£¬Ëõ½øÎª 4 ¿Õ¸ñ£¨¼û `package.json`£©¡£Vue ×é¼þ²ÉÓà PascalCase£»À©Õ¹ÅäÖý¨Òé·ÅÔÚ `src/extension/{domain}/{entity}.js`¡£ ºó¶Ë×ñÑ­ÏÖÓзֲãÓëÃüÃû£º`I{Entity}Service`£¨½Ó¿Ú£©¡¢`{Entity}Service`£¨ÊµÏÖ£©¡¢`{Entity}Controller`£¨¿ØÖÆÆ÷£©¡£ÐÂÔö´úÂëÓ¦±£³ÖÓëÏÖÓÐ Autofac ×¢²á¡¢»ù´¡ Controller/Service ģʽһÖ¡£ ĬÈÏÒªÇ󣺶ÔÐÂÔö»òÐ޸ĵĴúÂëÌí¼ÓÏêϸÖÐÎÄ×¢ÊÍ£¬ÖÁÉÙ°üº¬·½·¨Ä¿µÄ¡¢²ÎÊýº¬Òå¡¢·µ»ØÖµ¡¢¹Ø¼üÂß¼­²½ÖèºÍÒì³£´¦Àí˵Ã÷¡£ ×¢ÊÍÒªÇó¿É¶Á¡¢¿Éά»¤£¬½ûÖ¹¡°Öظ´´úÂë×ÖÃæÒâ˼¡±µÄÎÞЧעÊÍ¡£ ## Êý¾ÝÒ»ÖÂÐÔÓëÊÂÎñ¹æ·¶ - ͬһҵÎñ²Ù×÷Éæ¼°¶à¸öÊý¾Ý¶ÔÏ󣨶à±í¡¢¶à²Ö´¢¡¢¿ç·þÎñдÈ룩ͬʱ¸Ä¶¯Ê±£¬±ØÐëʹÓÃÊý¾Ý¿âÊÂÎñ£¨Transaction£©±£Ö¤Ô­×ÓÐÔ¡£ - ÊÂÎñ·¶Î§Ö»¸²¸Ç±ØÒªÐ´²Ù×÷£¬½ûÖ¹½«³¤ºÄʱ IO/ÍøÂçµ÷Ó÷ÅÈëÊÂÎñÄÚ£¬±ÜÃⳤÊÂÎñËø±í¡£ - ·¢ÉúÒ쳣ʱ±ØÐë»Ø¹öÊÂÎñ£¬²¢¼Ç¼ÊÂÎñÉÏÏÂÎÄ£¨ÒµÎñµ¥ºÅ¡¢¹Ø¼üÖ÷¼ü¡¢µ÷ÓÃÁ´±êʶ£©¡£ - ÈôÉæ¼°·Ö²¼Ê½»ò¿ç±ß½çдÈ룬ÐèÔÚ PR ÖÐÃ÷È·Ò»ÖÂÐÔ²ßÂÔ£¨²¹³¥¡¢ÖØÊÔ¡¢Ãݵȼü£©¡£ ## ½Ó¿Ú¡¢ÈÕÖ¾ÓëÒì³£¹æ·¶ - API ·µ»Ø½á¹¹±£³Öͳһ£¬×Ö¶ÎÃüÃûÓëÏÖÓкó¶ËÐòÁл¯²ßÂÔÒ»Ö£¬±ÜÃâËæÒâ±ä¸üÏìÓ¦×ֶΡ£ - Service ²ãÅ׳öµÄÒµÎñÒì³£Ðè°üº¬¿É¶¨Î»ÉÏÏÂÎÄ£¨ÈÎÎñºÅ¡¢É豸ºÅ¡¢¹Ø¼ü²ÎÊý£©¡£ - ÈÕÖ¾¼¶±ð¹æ·¶£ºµ÷ÊÔϸ½ÚÓà `Debug`£¬ÒµÎñ¹Ø¼ü·¾¶Óà `Information`£¬¿É»Ö¸´Òì³£Óà `Warning`£¬²»¿É»Ö¸´´íÎóÓà `Error`¡£ - ÑϽûÍÌÒì³££»²¶»ñºó±ØÐë¼Ç¼ÉÏÏÂÎIJ¢¾ö¶¨ÖØÅ×»òת»»ÎªÒµÎñ´íÎó¡£ - Éæ¼°Íⲿϵͳµ÷Óá¢IO¡¢ÍøÂçͨÐÅ¡¢É豸ͨÐÅ¡¢Êý¾Ý¿â·ÃÎʵĹؼü·¾¶±ØÐëʹÓà `try-catch`£»`catch` ÖÐÖÁÉټǼ´íÎóÐÅÏ¢Óë¹Ø¼ü²ÎÊý£¬²¢±£Áôԭʼ¶ÑÕ»£¨`throw;`£©£¬½ûÖ¹½ö `throw ex;`¡£ ## ²âÊÔÖ¸ÄÏ Ç°¶Ë²âÊÔ²ÉÓà Vue µ¥Ôª²âÊÔ£¨`tests/unit/*.spec.js`£©¡£Éæ¼° UI Âß¼­»ò½Ó¿Ú½»»¥±ä¸üʱ£¬Ó¦²¹³ä»ò¸üвâÊÔ£¬²¢Ö´ÐÐ `yarn test:unit`¡£ µ±Ç°½â¾ö·½°¸ÖÐδ°üº¬¶ÀÁ¢ºó¶Ë²âÊÔÏîÄ¿¡£ºó¶Ë¸Ä¶¯ÖÁÉÙÐèÍê³É¹¹½¨Óë¹Ø¼ü API ÊÖ¹¤ÑéÖ¤£»¸´ÔÓÒµÎñÂß¼­½¨ÒéÐÂÔö²âÊÔÏîÄ¿£¨Èç xUnit£©²¢ÄÉÈë½â¾ö·½°¸¡£ ## Ìá½»ÓëºÏ²¢ÇëÇ󹿷¶ ×î½üÌá½»ÆÕ±é²ÉÓà Conventional Commit ǰ׺£º`feat:`¡¢`fix:`¡¢`refactor:`¡¢`docs:`¡¢`chore:`£¨ÖÐÎÄÃèÊö£©¡£½¨ÒéÒ»´ÎÌá½»¾Û½¹Ò»¸öÃ÷È·¸Ä¶¯µã¡£ PR ½¨Òé°üº¬£º - ±ä¸üÄ¿µÄÓëÒµÎñÓ°Ïì˵Ã÷£» - Éæ¼°Ä£¿éÓëĿ¼·¶Î§£¨Ç°¶Ë/ºó¶Ë£©£» - ÑéÖ¤Ö¤¾Ý£¨ÒÑÖ´ÐÐÃüÁîÓë½á¹û£©£» - UI ±ä¸ü½ØÍ¼»ò¼ÆÁ£» - ¹ØÁªÈÎÎñ»òÎÊÌâ±àºÅ£¨ÈçÓУ©¡£