Jump to content
php.lv forumi

Sasa

Reģistrētie lietotāji
  • Posts

    848
  • Joined

  • Last visited

Posts posted by Sasa

  1. Te ir jānošķir divas lietas form tags un a tags, tie tik izmantoti dažādi, ar form iespējams nosūtīt uz serveri datus ko saglabāt ar a tagu iespējams izgūt datus padodot uz serveri parametrus pēc kuriem atlasīt kaut ko.

     

  2. ORM'u ar nākamo versiju var samainīt tā ka migrācija uz jauno versiju var būt laikietilpīga, ko tad palikt pie vecās versijas?

    Jā piekrītu par testējamību un versionēšanu bet tam arī ir risinājumi.

    Kā vēl iemeslu var minēt stored procedūras izpildīsies ātrāk kā ORM'a ģenerētais SQL's, tā vajadzētu būt.

     

  3. Ja loģiku saliek DB tad klienta daļa (PHP; .NET) pa lielam var būt jebkas un nodrošina datu transportu no UI uz DB un otrādi.

    Pa lielam visu ko mēs apstrādājam tie ir dati un kāpēc datu apstrādi vajadzētu iznest ārpus DB. Nākamais apsvērums ir tas, ka laika gaitā platformas var mainīties un stored procedūras var pasargāt no lielām pārmaiņām, PHP te īsti nebūs labākais piemērs, jo to var gan uz Windows, gan kā uz Linux darbināt.

    Nezinu kā ir MySQL ar storētām procedūrām, bet PostgreSQL vai Oracle ir ok.

  4. Ir tēma (https://themes.svn.wordpress.org/libre/1.0.3), kura izvada posta autoru, tas nav nepieciešams. Neatradu kur var izslēgt lai nerāda autoru.
    Cik izpētīju tēmā ir tā autora izvadīšanas loģika.

    Ātrākais būtu aizkomentēt to koda daļu, bet izdomāju ka labi būtu uzlikt uz iestatījumu.

    Ar ko būtu jāsāk? Pa lielam tēmas konfigurācijā vajadzētu ievest ķeksi 'Show/hide author'.

  5. Ideja sekojoša veikt pieprasījumus uz vairākiem URL'iem lai process būtu krietni ātrāks visu var paralēli laist un tad rezultātus apvienot. 

    Esmu ticis tik tālu:

    import threading
    import time
    import logging
    
    logging.basicConfig(level=logging.DEBUG, format='(%(threadName)-9s) %(message)s',)
    
    
    class ThreadPool(object):
        def __init__(self):
            super(ThreadPool, self).__init__()
            self.active = []
            self.lock = threading.Lock()
    
        def make_active(self, name):
            with self.lock:
                self.active.append(name)
                logging.debug('Running: %s', self.active)
    
        def make_inactive(self, name):
            with self.lock:
                self.active.remove(name)
                logging.debug('Running: %s', self.active)
    
    
    def threader(semaphore, pool, results):
        logging.debug('Waiting to join the pool')
        with semaphore:
            name = threading.currentThread().getName()
            pool.make_active(name)
            #time.sleep(3)
            results.append(name)
            pool.make_inactive(name)
    
    if __name__ == '__main__':
        results = []
        pool = ThreadPool()
        semaphore = threading.Semaphore(7)
        threads = []
        start_time = time.time()
        for i in range(20):
            t = threading.Thread(target=threader, name='thread_'+str(i), args=(semaphore, pool, results))
            t.start()
            threads.append(t)
    
        for t in threads:
            t.join()
    
        print results
        print("--- %s seconds ---" % (time.time() - start_time))
    

    Vēl ir nepieciešams ierobežot vienlaicīgo pieprasījumu skaitu. 

    Tik cik šobrīd izskatās ka viss strādā. 

    Vai ko var uzlabot?

×
×
  • Create New...