Äú¿ÉÒÔ¾èÖú£¬Ö§³ÖÎÒÃǵĹ«ÒæÊÂÒµ¡£

1Ôª 10Ôª 50Ôª





ÈÏÖ¤Â룺  ÑéÖ¤Âë,¿´²»Çå³þ?Çëµã»÷Ë¢ÐÂÑéÖ¤Âë ±ØÌî



  ÇóÖª ÎÄÕ ÎÄ¿â Lib ÊÓÆµ iPerson ¿Î³Ì ÈÏÖ¤ ×Éѯ ¹¤¾ß ½²×ù Modeler   Code  
»áÔ±   
 
   
 
 
     
   
 ¶©ÔÄ
  ¾èÖú
iOSÒÅÁôÏµÍ³ÖØ¹¹Êµ¼ù
 
×÷ÕߣºÀî½£ À´Ô´£ºInfoQ ·¢²¼ÓÚ£º 2016-8-9
  2661  次浏览      27
 

ÔÚ¹ýÈ¥µÄ¼¸¸öÔÂÄÚ£¬ÎÒÖ÷µ¼×ÅÍŶÓÍê³ÉÁËÒ»Ï³ÌºÆ´ó£¨ÀÛ»ý°Ë¸öÈËԵŤ×÷Á¿£©µÄÖØ¹¹¹¤×÷¡ª¡ªÎªÎÒÃǵÄAppÌæ»»Êý¾Ý¿â¡£Ö®ËùÒÔÄܹ»°ÑÕâÖÖÉ˽¹ÇµÄÊÂÇé³ÆÖ®ÎªÖØ¹¹£¬ÊÇÒòΪÔÚÕâ¶Îʱ¼äÄÚ£¬ÎÒÃÇÿÌìÏòÖ÷¸ÉºÏ²¢Á½µ½Èý´Î´úÂ룬ÆÚ¼äAppÉÏÏßÎå´Î£¬Óû§Ã»ÓиÐÖªµ½ÈκÎÓ°Ïì¡£ÔÚÕâÆªÎÄÕÂÖУ¬ÎÒ½«½²ÊöÎÒÃÇÈçºÎÔÚ²»Ó°ÏìϵͳÍⲿÐÐΪ£¬Ò²²»Ó°ÏìÕý³£½»¸¶µÄÇé¿öÏ£¬Ìæ»»µôÁËÊý¾Ý¿âʵÏÖ¡£

±³¾°

ÔÚÒ»¸öÓÐ×ÅÁ¼ºÃ·Ö²ã½á¹¹µÄϵͳÖУ¬Ã¿Ò»²ã¶¼ÓÐËü×Ô¼ºµÄÖ°Ôð£ºÏÔʾ²ã¸ºÔðÏìÓ¦Óû§Ê¼þ£¬µ÷ÓÃÒµÎñ²ãµÄÂß¼­£¬×îºó×öÊý¾Ý³ÊÏÖ£»ÒµÎñÂß¼­²ã¸ºÔðÒµÎñ¹æÔòÓëÊý¾Ý´¦Àí£»Êý¾Ý·ÃÎʲã·â×°µ×²ãÊý¾Ý¿âµÄ²Ù×÷£¬ÍøÂç·ÃÎʲãÓëÆä²¢ÁУ¬¸ºÔðÍøÂçÇëÇó¡¢json½âÎöµÈµÈ¡£ÎÞÂÛÊÇMVC¡¢MVVM¡¢VIPER£¬¹é¸ù½áµ×¶¼ÊÇÔÚ¡±µ¥Ò»Ö°Ôð¡°¡¢¡°¹Ø×¢µã·ÖÀ롱¡¢¡°¸ßÄÚ¾ÛµÍñîºÏ¡±µÄÔ­Ôòϱ仯£¬Ö»ÊDZíÏÖÐÎʽºÍº­¸ÇµÄ²ã´Î¸÷Òì¡£

¶øÔÚÎÒÃǵĴúÂëÖУ¬¼¸ºõËùÓеÄÏÔʾ²ã¶ÔÏ󣬰üÀ¨ViewController¡¢ViewModel£¬ÉõÖÁViewÀïÃæ¶¼»ìÔÓÁË´óÁ¿µÄCoreData APIµ÷Óã¬Ö±½Ó½øÐÐÊý¾Ý¿â²Ù×÷¡£

´ÖÂÔͳ¼ÆÁËһϣ¬ÏµÍ³ÖÐÒ»¹²ÓÐ25¸öÀàÓëNSManageContext½ô½ôñîºÏ¡£ÐγÉÁËÏÂͼÖлìÂҵľÖÃæ£º

Ãæ¶ÔÕâÖÖÇé¿ö£¬ÎÒÃÇÊ×ÏÈÒª×öµÄ¾ÍÊǽâñî¡£

·½°¸Ñ¡ÐÍ

ÎÒÃÇ×îÏÈÅųýµôµÄÊÇÖØÐ´ÕâÖÖ¼òµ¥´Ö±©µÄ·½Ê½¡£±íÃæÉÏ¿´À´£¬ÎÒÃÇ¿ÉÒÔͨ¹ýÖØÐ´µÃµ½Ò»¸ö¸É¾»ÀûÂäµÄ·½°¸£¬²ã´Î½á¹¹ÇåÎú£¬Ö°Ôð·ÖÀ룻µ«ÓëÖ®Ïà°éµÄÊǾ޴óµÄ·çÏÕ£º

1.·¶Î§²»¿É¿Ø¡ª¡ªÒÅÁôϵͳµÄÄѵã¾ÍÔÚÓÚÇ£Ò»·¢¶ø¶¯È«Éí£¬Ó°Ï췶Χ¼«¹ã¡£ÉÔ²»ÁôÉñ£¬ÖØÐ´µÄ¹¤×÷¾Í»áÈçÒ°»ðÁÇÔ­°ãÂûÑÓ¿ªÀ´£¬²»¿ÉÊÕʰ¡£

2.³¤Ê±¼äÎÞ·¨ÉÏÏß¡ª¡ªÔÚÕû¸ö¹ý³ÌÖУ¬Ö±µ½×îºóÍê³ÉµÄÄÇÒ»¿Ì֮ǰ£¬ÏµÍ³»á´¦ÓÚÒ»Ö±²»¿ÉÓõÄ״̬¡£Âþ³¤µÄʱ¼äÀËùÓеÄй¦Äܶ¼±»×èÈû£¬²»Äܽ»¸¶¡£Ã»ÓÐÄĸö²úÆ·ÍŶÓÄܳе£ÕâÑùµÄ½á¹û¡£

µÚ¶þ¸ö±»ÅųýµôµÄ·½°¸ÊÇÌØÐÔ·ÖÖ§¡£°ÑÖØÐ´µÄ¹¤×÷·Åµ½·ÖÖ§ÉÏÍê³É£¬ÆäËûÈ˼ÌÐøÔÚÖ÷¸ÉÉÏ¿ª·¢ÐÂÌØÐÔ£¬Ö±µ½ÖØÐ´½áÊøÔٺϲ¢»ØÖ÷¸É¡ª¡ªÕâÖÖ×ö·¨È·Êµ±ÈÖ±½ÓÖØÐ´ÒªºÃÉÏÄÇôһµãµã£¬ÒòΪÐÂÌØÐÔ»¹ÊÇ¿ÉÒÔ²»ÊÜÓ°ÏìµÄ£»µ«³¤ÆÚûÓиúÖ÷¸ÉºÏ²¢µÄ·ÖÖ§£¬ÔÚ¾­ÀúÉÏËÄÎå¸öÔµÄÖØÐ´Ö®ºó£¬ÌìÖªµÀµ½×îºóÒª»¨¶à³¤Ê±¼äÀ´´¦ÀíºÏ²¢³åÍ»£¿

¼ÈÏë¼õС¶ÔϵͳµÄÓ°Ï죬ÓÖÏë²»Ó°Ïìй¦ÄÜÉÏÏߣ¬ÓÖ²»Ïë´¦Àí´óÁ¿µÄºÏ²¢³åÍ»£¬×îºóµÄ·½°¸¾ÍֻʣÏÂÁËÒ»ÖÖ£¬ÄǾÍÊdzéÏó·ÖÖ§£¨Branch by Abstraction£©+ÌØÐÔ¿ª¹Ø£¨Feature Toggle£©¡£

³éÏó·ÖÖ§

³éÏó·ÖÖ§Õâ¸öÃû×ÖµÄÔµÆðÊÇÕë¶Ô°æ±¾¿â·ÖÖ§¶øÑԵģ¬ËüÔÊÐí¿ª·¢ÕßÔÚÒ»Ìõ¡°³éÏ󡱵ķÖÖ§Éϲ¢Ðй¤×÷£¬ÎÞÐè´´½¨Ò»Ìõʵ¼ÊµÄ·ÖÖ§£¬´Ó¶ø±ÜÃâÎÞνµÄºÏ²¢¿ªÏú¡£

Martin FowlerºÍJez Humble¶¼ÔøÔÚ¶àÄêǰ׫ÎĽéÉܹýÕâ¸öÖØ¹¹·½°¸¡£

ËüµÄ¹¤×÷Ô­ÀíºÜ¼òµ¥£ºµ±ÎÒÃÇÏëÒªÌæ»»µôϵͳÖеÄij¸ö×é¼þ¡ª¡ªÃûΪX¡ª¡ªÊ±£¬Ê×ÏÈΪX×é¼þ´´ÔìÒ»¸ö³éÏó²ã£¬ÕâÒ»²ãÀïÃæ¿ÉÄÜ»áÓдó´óССÈô¸É½Ó¿Ú»òÊÇЭÒ飬°ÑϵͳÖжÔX×é¼þµÄ·ÃÎʶ¼¸ôÀëÔÚ³éÏó²ã֮ϣ¬ÏµÍ³Ö»µ÷ÓóéÏóµÄ½Ó¿Ú/ЭÒ飬²»»á½Ó´¥µ½¾ßÌåµÄAPIʵÏÖ¡£ÈçÏÂͼËùʾ¡£

ÕâÒ»²½ÎÒÃÇ¿ÉÒÔͨ¹ýÌáÈ¡·½·¨¡¢ÌáÈ¡ÀàºÍ½Ó¿ÚµÈÖØ¹¹ÊÖ·¨À´Íê³É£»ÕâÒÔºóϵͳ¾Í³¹µ×¸úX×é¼þ½âñîÁË£¬ËüÒÀÀµµÄÖ»ÊÇÒ»×é³éÏó½Ó¿Ú£¬¶ø·Ç¾ßÌåʵÏÖ¡£Õâʱºò£¬ÎÒÃǾͿÉÒÔ×ÅÊÖÔÚÕâ¸ö³éÏó²ãÏÂÃæ£¬½øÐÐÐÂ×é¼þµÄ¿ª·¢¹¤×÷£¬ÈÃËüҲʵÏÖͬһÌ×½Ó¿Ú¼´¿É¡£

ÕâÖ®ºó£¬ÎÒÃÇÔÙʹÓÃÌØÐÔ¿ª¹Ø£¨ÆäÔ­Àí¼°ÊµÏÖ¼ûϽڣ©£¬ÈÃÕâ¸ö³éÏó²ãÔÚÉú²ú»·¾³Ïµ÷ÓþÉ×é¼þ£¬²âÊÔ»·¾³Ïµ÷ÓÃÐÂ×é¼þ£¬´Ó¶øÔÚÍêÈ«²»Ó°Ïì½»¸¶µÄÇé¿öÏ£¬Íê³É¶ÔÐÂ×é¼þµÄ²âÊÔ¡£²âÊÔ½áÊøºó£¬¾Í¿ÉÒÔ´ò¿ª¿ª¹Ø£¬ÈÃϵͳÔÚÏßÉÏʹÓÃÐÂ×é¼þ£¬µÈ³¹µ×Îȶ¨ºó£¬°Ñ¿ª¹Ø´úÂëºÍ¾É×é¼þ´úÂëÈ«²¿É¾µô£¬Ìæ»»¹¤×÷¾ÍÍê³ÉÁË¡£

ÔÚÉÏÊöÕû¸ö¿ª·¢¹ý³ÌÖУ¬ÈκÎÒ»¸ö½×¶Î¶¼¿ÉÒÔ×öµ½Ï¸Á£¶ÈµÄÈÎÎñ·Ö½â£¬È»ºóС²½Ìá½»£¬Ã¿´ÎÌá½»¶¼×Ô¶¯´¥·¢µ¥Ôª²âÊԺͼ¯³É²âÊÔ£¬±£Ö¤²»Ó°ÏìÏÖÓй¦ÄÜ¡£ÔÚÆµ·±Ìá½»µÄÇé¿öÏ£¬Ò²²»»á³öÏÖ´óÁ¿µÄ´úÂëºÏ²¢³åÍ»£¬ÎÞÂÛÊÇ×ö×é¼þÌæ»»»¹ÊÇÐÂÌØÐÔ¿ª·¢£¬¿ª·¢ÈËÔ±¶¼¿ÉÒÔ»ùÓÚͬһÌ×´úÂë¿â¹¤×÷¡£Õâ¾Í´ó´ó¼õÉÙÁ˶ÔϵͳµÄ³å»÷ºÍ½»¸¶·çÏÕ¡£

ÌØÐÔ¿ª¹Ø

ÏÈ¿´Ò»¶Î´úÂ룺

ÔÚÕâ¸öÀý×ÓÖУ¬ÎÒÃÇÒªÌæ»»Ò»¸öStoryboardµÄ²¼¾ÖºÍÏà¹ØViewControllerµÄ¹¦ÄÜ£¬ºÄʱºÜ¾Ã£¬Èç¹ûÖ±½ÓÔÚÖ÷¸ÉÉÏÐ޸ģ¬¾Í»áÖ±½ÓÓ°Ïìµ½ÏÖÓеÄApp£¬ÔÚ¹¦ÄÜÍê³É֮ǰ¶¼ÎÞ·¨ÉÏÏߣ»Èç¹ûÀ­Ò»Ìõ·ÖÖ§³öÀ´×ö£¬Î´À´¾ÍÓÖ»áÓдóÁ¿µÄºÏ²¢³åÍ»¡£Ê¹ÓÃÈçÉϵÄÌØÐÔ¿ª¹Ø¾Í»á±ÜÃâÉÏÊöÎÊÌâ¡£

µ±shouldDisplayNewSearchResultsScreenµÄÖµ·µ»ØÎªÕ棬¾ÍʹÓÃеÄStoryboard£¬·µ»ØÎª¼Ù£¬¾ÍʹÓþɵÄStoryboard¡£ÕâÑùÒ»À´£¬Ö»Òª¿ª¹Ø´¦ÓڹرÕ״̬£¬Î´Íê³ÉµÄ¹¦ÄܾÍÊǶÔÓû§²»¿É¼ûµÄ£¬ÎÒÃǾͼȿÉÒÔÔÚ¿ª·¢»·¾³ÏÂ×Բ⣬Ҳ¿ÉÒÔ²¿Êðµ½²âÊÔ»·¾³ÏÂ×öÑéÊÕ²âÊÔ£¬»¹¿ÉÒÔÕë¶Ô¿ª¹ØÎªÕæµÄÇé¿öд¶ÔÓ¦µÄµ¥Ôª²âÊÔ£¬ÈÃÿ´Î´úÂëÌá½»¶¼ÓгÖÐø¼¯³ÉÑéÖ¤¡£ÕâÆÚ¼ä»¹¿ÉÒÔ¼ÌÐø·¢²¼Ð°汾£¬Óû§ÍêÈ«¸ÐÖª²»µ½Ó°Ï죬ֱµ½ÎÒÃǾö¶¨´ò¿ª¿ª¹ØÎªÖ¹¡£

ÌØÐÔ¿ª¹Ø¿ÉÒÔÓжàÖÖʵÏÖ·½Ê½¡£

Ô¤±àÒë²ÎÊý

ÔÚÔ¤±àÒë²ÎÊýÖд«Öµ£¬Èò»Í¬µÄxcconfigÎļþ´«È벻ͬµÄÖµ£¬È»ºóÔÚ´úÂëÖÐ×öÅжϡ£

ÎÒÃÇϵͳÖоø´ó²¿·ÖµÄÌØÐÔ¿ª¹Ø¶¼ÊÇÓÃÕâÖÖ·½Ê½ÊµÏֵġ£

NSUserDefaults

ÓÐЩ¹¦ÄÜ¿ÉÄܶÔAppÓÐÆÆ»µÐÔµÄÓ°Ï죬¼´±ãÊÇÉè³ÉÖ»¶ÔInternal Target¿É¼û£¬Ò²»áÓ°Ïìµ½QAµÄ»Ø¹é²âÊÔ¡£ÎÒÃǸøInternal Target×öÁ˸öDeveloper Settings½çÃæ£¬Èÿª·¢ÈËÔ±¿ÉÒÔ×Ô¼ºÐ޸Ŀª¹Ø×´Ì¬£¬°Ñ¿ª¹ØµÄÖµ´æ·ÅÔÚNSUserDefaultsÀïÃæ£¬Ä¬ÈÏ·µ»Øfalse£¬Ö»ÓÐÔÚ½çÃæÉÏÊÖ¹¤Çл»Ö®ºó²Å»á·µ»Øtrue¡£²âÊԺͿª·¢»¥Ï಻ÊÜÓ°Ïì¡£

ÎÒÃÇÏòRealmÇ¨ÒÆµÄÌØÐÔ¿ª¹ØÊ¹ÓõľÍÊÇÕâÖÖ·½Ê½¡£

·þÎñÆ÷ȡֵ

ÅäÖòÎÊýµÄÖµÒ²¿ÉÒÔͨ¹ý·þÎñÆ÷Ï·¢¡£ÕâÖÖ×ö·¨µÄºÃ´¦ÊDZȽÏÁé»î£¬ÔÚÆôÓÃ/½ûÓÃijÏÄܵÄʱºò²»ÐèÒª·¢²¼Ð°汾£¬Ö»ÐèÒªºǫ́ÅäÖã¬È±µãÊÇ»áÔö¼Ó¼¯³ÉºÍºǫ́¿ª·¢µÄ¹¤×÷Á¿¡£

A/B²âÊÔ

»¹ÓÐÒ»¸ö°ì·¨ÊÇʹÓõÚÈý·½µÄA/B²âÊÔ·þÎñ£¬Èç¹ûȱÉÙºǫ́¿ª·¢ÈËÔ±µÄ»°£¬ÕâÒ²ÊÇÒ»¸öÑ¡Ôñ¡£µ«µÚÈý·½µÄÎȶ¨ÐÔÍùÍù¾Í»á³ÉÎªÖÆÔ¼ÒòËØ£¬ParseÎªÍÆËÍ֪ͨÌṩ¹ýA/B²âÊÔ·þÎñ£¬µ«ÊÇËüµ½ÁË17Äê¾Í»á±»¹Ø±ÕÁË£»ÎÒÃÇÓÃAmazonµÄA/B²âÊÔ¿ò¼ÜÓÃÁËÒ»¶Îʱ¼ä£¬È»ºóAmazonÒ²Ðû²¼½ñÄê8Ô·ÝÍ£Óá­¡­Ä¿Ç°ÎÒÃÇ»¹ÔÚѰÕÒ±¸Ñ¡·½°¸¡£

¾ßÌåʵÏÖ

ÔÚ¾ßÌåÂäʵ³éÏó·ÖÖ§ºÍÌØÐÔ¿ª¹ØµÄʱºò£¬Ò»¹²·Ö³ÉÁËÈçϼ¸¸ö½×¶Î£º

½¨Á¢Êý¾Ý·ÃÎʲã

ÎÒÃÇÊ×ÏȰѸúÊý¾ÝÇëÇóÓйصIJÙ×÷´ÓViewControllerÖÐÌáÈ¡³ÉÒ»¸ö·½·¨£¬·Åµ½ÁíÒ»¸ö¶ÔÏóÖÐʵÏÖ£¬ÒÔ±ãÈÕºóÌæ»»¡£È»ºó°ÑËùÓеÄÊý¾Ý·ÃÎʵķ½·¨¶¼ÌáÈ¡³ÉÒ»¸öЭÒ飬ÈÃÊý¾Ý²ãÖ®ÉϵĶÔÏó¶¼ÒÀÀµÓÚÕâ¸öЭÒ飬¶ø²»ÊǾßÌå¶ÔÏó¡£ÕâÑùÒ»À´£¬Ô­ÏȵÄViewController¾Í´ÓÏÂͼÖеÄÑù×Ó£º

±ä³ÉÁËÕâÑù£º

ΪÊý¾Ý¶ÔÏóÌáȡЭÒé

³ýÁËÊý¾Ý·ÃÎʵĴúÂëÒÔÍ⣬ÎÒÃÇ»¹°ÑËùÓеÄÊý¾Ý¶ÔÏóÉϵĹ«ÓÐÊôÐԺͷ½·¨¶¼ÌáÈ¡ÁËÏàÓ¦µÄЭÒ飬ȻºóÐÞ¸ÄÁËÕû¸öApp£¬ÈÃËüʹÓÃЭÒ飬¶ø²»ÊǾßÌåµÄÊý¾Ý¶ÔÏó¡£ÕâÒ²ÊÇΪÒÔºóµÄÇл»×ö×¼±¸¡£

ʹÓÃRealmʵÏÖ

ǰÁ½²½Íê³ÉÖ®ºó£¬ÎÒÃǾͽ¨Á¢ÆðÁËÒ»¸öÍêÕûµÄ³éÏó²ã¡£ÔÚÕâ²ãÖ®ÉÏ£¬AppÀïÒѾ­Ã»ÓÐÁ˶ÔCoreDataºÍÊý¾Ý¶ÔÏóµÄÒÀÀµ£¬ÎÒÃÇ¿ÉÒÔÔÚÕâ²ã³éÏó֮ϣ¬ÌṩһÌ×ȫеÄʵÏÖ£¬ÓÃÀ´Ìæ»»CoreData¡£

ÔÚʵÏÖ¹ý³ÌÖУ¬ÎÒÃÇ»¹ÊÇÓöµ½Á˲»ÉÙÐèҪĥºÏµÄϸ½Ú£¬±ÈÈçRealmÖеÄÒ»¶Ô¶à¹ØÁªÊÇͨ¹ýRLMArrayʵÏֵ쬲¢²»ÊÇÕæÕýµÄNSArray£¬ÎªÁ˱£Ö¤½Ó¿ÚµÄ¼æÈÝÐÔ£¬ÎÒÃǾÍÖ»ÄܰÑproperty¶¨ÒåΪRLMArray£¬ÔÙÌṩһ¸öNSArrayµÄgetter·½·¨¡£ÖÖÖÖÎÊÌâ²»Ò»¶ø×ã¡£

Çл»¿ª¹Ø×´Ì¬

ÉÏÆªÎÄÕÂ˵µ½£¬ÎÒÃÇÔÚÇ¨ÒÆ¹ý³ÌÖеÄÌØÐÔ¿ª¹ØÊÇÓÃNSUserDefaultsʵÏֵģ¬ÔÚ½çÃæÉÏÊÖ¹¤Çл»¿ª¹Ø×´Ì¬¡£ÕâÑùµÄºÃ´¦ÊÇ¿ª·¢¹ý³Ì²»»áÓ°ÏìÔÚHockeyºÍTestFlightÉÏÄÚ²¿·¢²¼¡£Ö±µ½ÊµÏÖÍê³Éºó£¬ÎÒÃÇÔÙ°Ñ¿ª¹Ø¸Ä³É

+ (BOOL)shouldUseRealm {  return isInternalTarget; }

ÈòâÊÔÈËÔ±¿ÉÒÔÔÚÕæ»úÉϲâÊÔ¡£»Ø¹é²âÊÔ½áÊøÖ®ºó£¬ÔÙÈÿª¹ØÖ±½Ó·µ»Øtrue£¬¾Í¿ÉÒÔÏòApp StoreÌá½»ÁË¡£

Êý¾ÝÇ¨ÒÆ

Õâ¸öÎÞÐè¶à˵£¬Ð´¸öMigrationManagerÖ®ÀàµÄÀ࣬ÓÃÀ´°ÑÊý¾Ý´ÓCoreDataÖжÁ³ö£¬Ð´µ½RealmÀïÃæÈ¥¡£Õâ¸öÀà´ó¸ÅÒª±£ÁôÉÏÈýËĸö°æ±¾£¬µÈ¾ø´ó²¿·ÖÓû§¶¼ÒѾ­Éý¼¶µ½Ð°汾֮ºó²Å»áɾµô¡£

ºóÐøÇåÀí

ÌØÐÔ¿ª¹ØÊDz»ÄÜÒ»Ö±´æ»îÏÂÈ¥µÄ£¬·ñÔò´úÂëÖеķÖÖ§ÅжϻáÔ½À´Ô½¶à¡£ÎÒÃÇÒ»°ã¶¼»áÔÚÉÏÏßÒ»Á½¸öÐÇÆÚÖ®ºó£¬·¢ÏÖûÓгöÏÖÌØ±ðÑÏÖØµÄcrash£¬¾Í°Ñ¸ú¿ª¹ØÓйصĴúÂëÈ«¶¼É¾µô¡£

ÔÚµÚÒ»²½½¨Á¢Êý¾Ý·ÃÎʲãµÄʱºò£¬ÎÒÃÇ´´½¨³öÁËÒ»¸öÌØ±ðÅÓ´óµÄPersistenceService£¬ËüÀïÃæº¬ÓÐËùÓеÄÊý¾Ý·ÃÎÊ·½·¨¡£ÕâÖ»ÊÇΪÁË·½±ãÇл»¶øÒÑ£¬Çл»Íê³Éºó£¬ÎÒÃÇ»¹ÊÇÒª¸ù¾Ý·ÃÎÊÊý¾ÝµÄ²»Í¬£¬½¨Á¢Ò»¸ö¸öСµÄRepository£¬È»ºóÈÃViewModel¶ÔÏó·ÃÎÊRepository¶ÁдÊý¾Ý£¬°ÑPersistenceServiceɾµô¡£

×îºóÐγɵļܹ¹ÈçͼËùʾ£º

×ܽá

Ê×ÏÈ£¬ÒªÓ¸ÒÃæ¶ÔÒÅÁô´úÂë¿â£¬ÍŶÓÀïÒ»¶¨ÒªÓÐÈËÕ¾³öÀ´¸ú´ó¼Ò˵£¬ÎÒÃDz»ÄÜÈôúÂë¼ÌÐø¸¯ÀÃÏÂÈ¥£¬ÎÒÃÇÒªÓÐÇåÎúµÄÄ¿±êºÍÕýÈ·µÄ²ßÂÔ£¬ÔÚÖØ¹¹ÖÐÈÃÓÅÐãµÄÉè¼Æ½¥½¥Ó¿ÏÖ¡£Õâ²ÅÊÇÕý;¡£

ÒªÓÐÕýÈ·µÄ·½·¨

ÔÚÒÅÁô´úÂëÖй¤×÷£¬Long-Term RefactoringÊDz»¿É»òȱµÄ¡£ÈËÃÇÐèÒªÔ¤¼ûµ½ÔÚδÀ´µÄ²úÆ·¹æ»®ÖУ¬ÄÄЩ×é¼þÓ¦µ±±»Ìæ»»£¬ÄIJ¿·Ö¼Ü¹¹ÐèÒª×÷³öµ÷Õû£¬°ÑËüÃǷŵ½µü´ú¼Æ»®ÀïÃæÀ´£¬µ±×öÈÕ³£¹¤×÷µÄÒ»²¿·Ö¡£³éÏó·ÖÖ§ºÍÌØÐÔ¿ª¹ØÔÚLong-Term Refactoring¿ÉÒÔ·¢»ÓÏÔÖøµÄЧ¹û£¬ËüÃÇÊdzÖÐø½»¸¶µÄ±£ÕÏ¡£

Éè¼Æ»á¹ýʱ£¬µ«Éè¼ÆÔ­Ôò²»»á

ºÜ¶à¼¼Êõ¾ö²ß¶¼²»ÊǷǺڼ´°×µÄ£¬ËüÃǸüÏñÊÇÔÚÖÖÖÖÔ¼ÊøÏÂ×ö³öµÄȨºâ¡£Ê±¹â»áÍÊÉ«£¬¿ò¼Ü»á¹ýʱ£¬ÍÑÀëÁ˾ßÌ峡¾°£¬½ñÌìµÄÓÅÐãÉè¼ÆÒ²»áÂÙÂä³ÉÃ÷ÌìµÄÒÅÁô´úÂ룬µ«Éè¼ÆÔ­ÔòÓÐ×Ų»¶¯ÉùÉ«µÄÁ¦Á¿¡£ÎÒÃÇÎÞ·¨Ô¤¼ûδÀ´£¬Ö»Äܸù¾Ýµ±Ç°µÄÇé¿ö×ö³ö¼òµ¥¶øÁé»îµÄÉè¼Æ¡£ÕâÑùµÄÉè¼ÆÓ¦µ±·þ´ÓÕâЩÉè¼ÆÔ­Ôò£ºµ¥Ò»Ö°Ôð¡¢¹Ø×¢µã·ÖÀë¡¢²»ÒªºÍİÉúÈË˵»°¡­¡­ÈÃÎÒÃǵĴúÂ뾡¿ÉÄܱ£³Ö¸ßÄÚ¾ÛµÍñîºÏ£¬±£Ö¤Á¼ºÃµÄ¿É²âÊÔÐÔ¡£

   
2661 ´Îä¯ÀÀ       27
Ïà¹ØÎÄÕÂ

ÆóÒµ¼Ü¹¹¡¢TOGAFÓëArchiMate¸ÅÀÀ
¼Ü¹¹Ê¦Ö®Â·-ÈçºÎ×öºÃÒµÎñ½¨Ä££¿
´óÐÍÍøÕ¾µçÉÌÍøÕ¾¼Ü¹¹°¸ÀýºÍ¼¼Êõ¼Ü¹¹µÄʾÀý
ÍêÕûµÄArchimateÊÓµãÖ¸ÄÏ£¨°üÀ¨Ê¾Àý£©
Ïà¹ØÎĵµ

Êý¾ÝÖÐ̨¼¼Êõ¼Ü¹¹·½·¨ÂÛÓëʵ¼ù
ÊÊÓÃArchiMate¡¢EA ºÍ iSpace½øÐÐÆóÒµ¼Ü¹¹½¨Ä£
ZachmanÆóÒµ¼Ü¹¹¿ò¼Ü¼ò½é
ÆóÒµ¼Ü¹¹ÈÃSOAÂ䵨
Ïà¹Ø¿Î³Ì

ÔÆÆ½Ì¨Óë΢·þÎñ¼Ü¹¹Éè¼Æ
ÖÐ̨սÂÔ¡¢ÖÐ̨½¨ÉèÓëÊý×ÖÉÌÒµ
ÒÚ¼¶Óû§¸ß²¢·¢¡¢¸ß¿ÉÓÃϵͳ¼Ü¹¹
¸ß¿ÉÓ÷ֲ¼Ê½¼Ü¹¹Éè¼ÆÓëʵ¼ù

×îл¼Æ»®
DeepSeekÔÚÈí¼þ²âÊÔÓ¦ÓÃʵ¼ù 4-12[ÔÚÏß]
DeepSeek´óÄ£ÐÍÓ¦Óÿª·¢Êµ¼ù 4-19[ÔÚÏß]
UAF¼Ü¹¹ÌåϵÓëʵ¼ù 4-11[±±¾©]
AIÖÇÄÜ»¯Èí¼þ²âÊÔ·½·¨Óëʵ¼ù 5-23[ÉϺ£]
»ùÓÚ UML ºÍEA½øÐзÖÎöÉè¼Æ 4-26[±±¾©]
ÒµÎñ¼Ü¹¹Éè¼ÆÓ뽨ģ 4-18[±±¾©]

Ïà¹ØÎÄÕÂ


ר¼ÒÊӽǿ´ITÓë¼Ü¹¹
Èí¼þ¼Ü¹¹Éè¼Æ
ÃæÏò·þÎñÌåϵ¼Ü¹¹ºÍÒµÎñ×é¼þ
ÈËÈËÍøÒÆ¶¯¿ª·¢¼Ü¹¹
¼Ü¹¹¸¯»¯Ö®ÃÕ
̸ƽ̨¼´·þÎñPaaS

Ïà¹ØÅàѵ¿Î³Ì


ÃæÏòÓ¦Óõļܹ¹Éè¼ÆÊµ¼ù
µ¥Ôª²âÊÔ+ÖØ¹¹+Éè¼ÆÄ£Ê½
Èí¼þ¼Ü¹¹Ê¦¡ª¸ß¼¶Êµ¼ù
Èí¼þ¼Ü¹¹Éè¼Æ·½·¨¡¢°¸ÀýÓëʵ¼ù
ǶÈëʽÈí¼þ¼Ü¹¹Éè¼Æ¡ª¸ß¼¶Êµ¼ù
SOAÌåϵ½á¹¹Êµ¼ù

³É¹¦°¸Àý


Èñ°²¿Æ¼¼ Èí¼þ¼Ü¹¹Éè¼Æ·½·¨
³É¶¼ ǶÈëʽÈí¼þ¼Ü¹¹Éè¼Æ
ÉϺ£Æû³µ ǶÈëʽÈí¼þ¼Ü¹¹Éè¼Æ
±±¾© Èí¼þ¼Ü¹¹Éè¼Æ
ÉϺ£ Èí¼þ¼Ü¹¹Éè¼Æ°¸ÀýÓëʵ¼ù
±±¾© ¼Ü¹¹Éè¼Æ·½·¨°¸ÀýÓëʵ¼ù
ÉîÛÚ ¼Ü¹¹Éè¼Æ·½·¨°¸ÀýÓëʵ¼ù
ǶÈëʽÈí¼þ¼Ü¹¹Éè¼Æ¡ª¸ß¼¶Êµ¼ù