Dürüst olmak gerekirse, işleviniz "bir şey yapabilir", ancak sizin belirttiğiniz gibi
Normal ifadeyi birden fazla işleve ayırmaya başlayabilirim,
Bu da reg ex kodunuzun birçok şeyi yaptığı anlamına gelir. Ve sanırım daha küçük, bireysel olarak test edilebilir birimlere bölünebilir. Ancak, bu iyi bir fikir ise, cevaplamak kolay değildir (özellikle gerçek kodu görmeden). Ve doğru cevap ne "evet" ne de "hayır" olabilir, ama "henüz değil, ama bir dahaki sefere bu reg exp'deki bir şeyi değiştirmek zorundasınız" olabilir.
ancak dilleri etkili bir şekilde değiştirdiğim için okunabilirliği gerçekten kaybedecekmiş gibi hissediyorum
Ve bu temel nokta - reg ex dilinde yazılmış bir kod parçanız var . Bu dil, kendi içinde soyutlama için iyi bir araç sağlamaz (ve "adlandırılmış yakalama grupları" işlevlerinin yerine geçmez). Bu yüzden "reg ex dilinde" yeniden düzenleme gerçekten mümkün değildir ve ana bilgisayar dili ile iç içe daha küçük reg exps gerçekten okunabilirliği artıramayabilir (en azından öyle hissediyorsunuz , ancak şüpheleriniz var, aksi takdirde sorunuzu yayınlamazsınız) . İşte benim tavsiyem
başkalarının sizin gibi okunabilirliği düşündüğünden emin olmak için kodunuzu başka bir gelişmiş geliştiriciye gösterebilirsiniz (belki /codereview// ). Başkalarının sizin gibi okunabilir bir 100 satır reg exp bulamayabileceği fikrine açık olun. Bazen "daha küçük parçalara kolayca kırılamaz" kavramı sadece ikinci bir gözle aşılabilir.
gerçek evrilebilirliği gözlemleyin - yeni gereksinimleriniz geldiğinde ve bunları uygulamak ve test etmek zorunda olduğunuzda parlak reg exp'niz hala çok iyi görünüyor mu? Reg exp çalıştığınız sürece, ona dokunmayacağım, ancak bir şeyin değiştirilmesi gerektiğinde, bu büyük bloğa everyhing koymanın gerçekten iyi bir fikir olup olmadığını tekrar düşünürdüm - ve (ciddi olarak!) daha küçük parçalar daha iyi bir seçenek olmazdı.
sürdürülebilirliği gözlemleyin - mevcut formdaki reg exp'yi etkili bir şekilde hata ayıklayabilir misiniz? Özellikle bir şeyi değiştirmek zorunda kaldıktan sonra, şimdi testleriniz size bir şeyin yanlış olduğunu söylüyorsa, temel nedeni bulmanıza yardımcı olan bir reg exp hata ayıklayıcı var mı? Hata ayıklama zorlaşırsa, bu da tasarımınızı yeniden değerlendirmek için bir fırsat olacaktır.